所以我有一个组件和一个属性指令,如下所示:
<my-component my-directive>
。
当组件被销毁时,我调用$scope.$destroy();
($ scope注入组件控制器)。
Inside指令的link
函数我有一个像这样的监听器:
$scope.$on('$destroy', function () {...
问题是它无法运作。似乎这些是不同的范围。
现在我有一个解决方法:
在组件控制器中添加$ctrl.scope = $scope;
require : '^myComponent',
并使用myComponent.scope
- 然后就可以了。
问题是:如何在指令内监听组件销毁?
添加:myComponent
是使用$compile
创建的,以防它发生变化
答案 0 :(得分:1)
您可以使用范围的$ctrl
属性从指令访问控制器,
然后在组件控制器实例的指令中使用$onDestroy(...)
(而不是范围中的$on('destroy',...)
)来监听组件范围的销毁。