我有一个带有link函数的指令,在其中执行一个scope.$on('$destroy', cleanup)。
我想打开浏览器的JavaScript控制台并触发$destroy,以确保cleanup被正确调用和执行。
我该怎么做?
在link函数中,我设置了window.blahblah = scope;,然后在JavaScript控制台中尝试了window.blahblah.trigger('$destroy'),但没有触发。
最后,我将不得不在.spec.js文件中为这个指令编写一个测试,所以知道如何这样做也是有帮助的。
发布于 2014-07-16 16:20:13
您可以通过调用$scope.$destroy()直接销毁它,因此在您的示例中,代码将是
window.blahblah.$destroy();或者,如果您只想测试侦听器而不真正破坏它,则可以调用$scope.$broadcast('$destroy')。
window.blahblah.$broadcast('$destroy');https://stackoverflow.com/questions/24785609
复制相似问题