我已经使用$ on函数将我的监听器注册到$ broadcast事件
$scope.$on("onViewUpdated", this.callMe);
Run Code Online (Sandbox Code Playgroud)
我想根据特定的业务规则取消注册此侦听器.但我的问题是,一旦注册,我无法取消注册.
AngularJS中是否有任何方法可以取消注册特定的侦听器?像$ on这样取消注册此事件的方法可能是$ off.所以我可以说基于业务逻辑
$scope.$off("onViewUpdated", this.callMe);
Run Code Online (Sandbox Code Playgroud)
当有人播放"onViewUpdated"事件时,此函数停止被调用.
谢谢
编辑:我想从另一个函数取消注册监听器.不是我注册它的功能.
我知道你可以解开像这样的$ watch:
var listener = $scope.$watch("tag", function () {});
// ...
listener(); // would clear the watch
Run Code Online (Sandbox Code Playgroud)
但你可以在手表功能声明中取消绑定手表吗?因此,在手表执行一次后,它会自行解除绑定吗?就像是:
$scope.$watch("tag", function () {
unbindme()
});
Run Code Online (Sandbox Code Playgroud) 是否有一个指令或方法在AngularJS中实现.one()函数用jquery实现的是什么?
即,将事件附加到仅执行一次的元素.