当父项被销毁时,子指令不接收$ destroy事件

时间:2016-01-19 19:56:07

标签: angularjs destroy

我有一个属性指令附加到我的应用程序模板中的一个元素。当我离开这个模板时,与之关联的控制器会收到一个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

1 个答案:

答案 0 :(得分:1)

当销毁父元素时,将在指令中调用element.on('$destroy)scope.$on('$destroy')。问题在于倾听'destroy'而不是'$destroy'