Angularjs 父指令被销毁时,子指令未接收$destroy事件

Angularjs 父指令被销毁时,子指令未接收$destroy事件,angularjs,destroy,Angularjs,Destroy,我有一个属性指令附加到我的应用程序模板中的一个元素。当我路由离开此模板时,与其关联的控制器接收到销毁事件。但是,该指令似乎也没有收到此事件。我有没有办法在指令范围内收到它 模板: <div ng-controller="myController"> <div my-directive></div> </div> 在指令的链接功能中: scope.$on('destroy', function(){ console.log('This w

我有一个属性指令附加到我的应用程序模板中的一个元素。当我路由离开此模板时,与其关联的控制器接收到销毁事件。但是,该指令似乎也没有收到此事件。我有没有办法在指令范围内收到它

模板:

<div ng-controller="myController">
   <div my-directive></div>
</div>
在指令的链接功能中:

scope.$on('destroy', function(){
  console.log('This will not fire');
})

element.on('destroy', function(){
  console.log('This will not fire either');
})

我发现几年前的一个问题与我的问题非常相似,但它被标记为已解决:

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

我曾遇到过类似的问题,最后广播了我在子作用域中监听的自定义销毁事件。不知道它打破了多少“规则”,但它解决了我留下孩子的问题。啊,这很有效。似乎应该有更好的方法来处理这个问题。我同意,这感觉很“黑”。我为此付出了很大的努力(特别是在需要在混合应用程序中从jQuery“销毁”时),并且找不到更好的方法。我很想听听其他社区的意见:)这是经过一番研究和失败的努力后我能想到的最好的答案。我不认为这是一个完全相同的问题,答案也不能解决问题--
元素。on('destroy')
也不会在指令中被调用。天哪,你刚刚救了我!
scope.$on('destroy', function(){
  console.log('This will not fire');
})

element.on('destroy', function(){
  console.log('This will not fire either');
})