我有一个属性指令附加到我的应用程序模板中的一个元素。当我离开这个模板时,与之关联的控制器会收到一个destroy事件。但是,该指令似乎也没有收到此事件。我有什么方法可以在指令中收到它吗?
模板:
<div ng-controller="myController">
<div my-directive></div>
</div>
在控制器中:
$scope.$on('destroy', function(){
console.log('This fires just fine');
})
在指令的链接功能中:
scope.$on('destroy', function(){
console.log('This will not fire');
})
element.on('destroy', function(){
console.log('This will not fire either');
})
我发现几年前的一个问题与我的问题非常相似,但它被标记为已解决:https://github.com/angular/angular.js/issues/683。
答案 0 :(得分:1)
当销毁父元素时,将在指令中调用element.on('$destroy)
和scope.$on('$destroy')
。问题在于倾听'destroy'
而不是'$destroy'
。