如何取消注册或销毁$广播事件
how to unregister or destroy $broadcast-ed events?
我有一个指令,这是ng-repeat
-ed 5次,当我从服务广播事件说fb-delete
,然后事件触发5次(与ng-repeat
-ed次数相同)我已经尝试过它与本地指令范围-> scope.$on('fb-delete', //do something)
,甚至与根范围$rootScope.$on('fb-delete', //so something)
它总是触发多次。
我如何确保$broadcast只触发一次,即使指令很多?
使用Function构造函数:
function foo ()
{
/* do stuff once */
/*...*/
/*...*/
/*...*/
foo = Function;
}
scope.$on('fb-delete', foo);
引用
- rootScopeSpec.js:取消登记
- AngularJS作用域生命周期
相关文章:
- 推送器:无法广播客户端事件
- AngularJS:在rootScope上广播/发出的事件多次发生
- 什么'是在AngularJS中处理应用程序状态和事件广播的最佳实践
- AngularJs-向单个控制器广播事件
- AngularJS:只将事件从父级广播给它的子级
- angular js,广播一个事件并等待它完成
- 如何将 AngularJS 事件重新广播到子范围
- 广播事件-工作良好的服务器端,但不是在客户端
- 事件广播到特定用户(套接字).Io, redis, node)
- 监听来自指令内控制器的广播事件
- 如何广播事件到一个元素从rootScope在聚合物
- 如何取消注册或销毁$广播事件
- 使用d3.在d3组件之间调度广播事件
- AngularJs 广播事件
- AngularJS 1.5中的组件不监听$scope中的广播事件
- 角度 - 没有 HTML 和广播事件的控制器
- 如何在JavaScript(或jQuery)中实现自定义广播事件
- AngularJS:如何避免-从app.js调用的广播事件被触发两次
- AngularJS - 在广播事件后更新指令的视图
- 监听angularjs以非angular的方式广播事件