Angular 指令删除元素绑定

Angular directive remove element binding

我有一个指令,它有一个特殊的处理程序 foo,用于处理导致 error 的图像。 foo 使用默认图像更新错误图像的来源。它有如下绑定:

element0.bind('error', foo);

问题是,如果默认图片源出错,foo会被无限调用。

有没有办法在调用一次后终止绑定?除其他外,我试过

有什么想法吗?我可能会重新设计它,但问题仍然存在。

element0.unbind('error', foo);

此答案特定于 jQuery,但对于 Angular jqLit​​e 也是相同的。

至于jQuery,bindunbind已过时,取而代之的是onoff

反对在 Angular 中使用 jQuery 的论点适用于这种情况。最好坚持范围事件:

var errorListener = $scope.$on('error', foo);

并用

删除监听器
errorListener();