角度范围。$ on('$ destroy')

时间:2014-07-16 16:10:24

标签: javascript angularjs

我有一个link函数的指令,在其中执行scope.$on('$destroy', cleanup)

我想打开浏览器的JavaScript控制台并触发$destroy以确保cleanup被调用并正确执行。

我该怎么做?

link功能中,我设置了window.blahblah = scope;,然后在JavaScript控制台中尝试window.blahblah.trigger('$destroy'),但没有触发。

最终,我将不得不在.spec.js文件中为此指令编写测试,因此知道如何执行该测试也会有所帮助。

1 个答案:

答案 0 :(得分:1)

您可以通过调用$scope.$destroy()直接销毁它,因此在您的情况下,代码将是

window.blahblah.$destroy();

或者如果你只是想在不破坏真实情况的情况下测试听众,你可以拨打$scope.$broadcast('$destroy')

window.blahblah.$broadcast('$destroy');