$ destroy在组件的指令中

时间:2017-07-27 09:17:55

标签: javascript angularjs

所以我有一个组件和一个属性指令,如下所示: <my-component my-directive>

当组件被销毁时,我调用$scope.$destroy();($ scope注入组件控制器)。

Inside指令的link函数我有一个像这样的监听器: $scope.$on('$destroy', function () {...问题是它无法运作。似乎这些是不同的范围。

现在我有一个解决方法:

在组件控制器中添加$ctrl.scope = $scope;

require : '^myComponent',并使用myComponent.scope - 然后就可以了。

问题是:如何在指令内监听组件销毁?

添加myComponent是使用$compile创建的,以防它发生变化

1 个答案:

答案 0 :(得分:1)

您可以使用范围的$ctrl属性从指令访问控制器, 然后在组件控制器实例的指令中使用$onDestroy(...)(而不是范围中的$on('destroy',...))来监听组件范围的销毁。