我有一个link
函数的指令,在其中执行scope.$on('$destroy', cleanup)
。
我想打开浏览器的JavaScript控制台并触发$destroy
以确保cleanup
被调用并正确执行。
我该怎么做?
在link
功能中,我设置了window.blahblah = scope;
,然后在JavaScript控制台中尝试window.blahblah.trigger('$destroy')
,但没有触发。
最终,我将不得不在.spec.js
文件中为此指令编写测试,因此知道如何执行该测试也会有所帮助。
答案 0 :(得分:1)
您可以通过调用$scope.$destroy()
直接销毁它,因此在您的情况下,代码将是
window.blahblah.$destroy();
或者如果你只是想在不破坏真实情况的情况下测试听众,你可以拨打$scope.$broadcast('$destroy')
。
window.blahblah.$broadcast('$destroy');