AngularJS:如何从指令添加的元素中删除事件处理程序?

时间:2016-04-06 03:31:27

标签: javascript angularjs angularjs-directive event-handling

我有一个属性指令,通过element.addEventListener(<event>, handler);

为link()函数中的元素上的某些事件添加事件侦听器

最后,我希望根据控制器中的逻辑动态删除这些处理程序。我怎样才能做到这一点?我认为只是在我的控制器中的元素上调用removeEventListener,但我没有对处理函数的引用,因为它在我的指令中。

1 个答案:

答案 0 :(得分:1)

您可以使用最终删除事件处理程序。

scope.$on('$destroy', function() {
      //Code to remove Event     
});

如果您想在中间删除它,那么您可以在指令中侦听事件,并在需要时从控制器中广播或发出