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

AngularJS: How to remove event handlers from an element that were added by a directive?

本文关键字:元素 删除 事件处理 程序 添加 指令 AngularJS      更新时间:2024-01-11

我有一个属性指令,它通过element.addEventListener(<event>, handler); 为link()函数中的元素上的某些事件添加事件侦听器

最后,我希望根据控制器中的逻辑动态地删除那些处理程序。我该怎么做?我考虑过只对控制器中的元素调用removeEventListener,但我没有引用处理程序函数,因为它在我的指令中。

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

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

如果您想在两者之间删除它,则可以侦听指令内部的事件,并在需要时从控制器广播或发射