我已经使用$ on函数将监听器注册到$ broadcast事件中
$scope.$on("onViewUpdated", this.callMe);
我想根据特定的业务规则取消注册此侦听器。但是我的问题是,一旦注册,我将无法注销。
AngularJS中是否有任何方法可以取消注册特定的侦听器?诸如$ on之类的方法可以注销该事件,可能是$ off。因此,基于业务逻辑,我可以说
$scope.$off("onViewUpdated", this.callMe);
并且当有人广播“ onViewUpdated”事件时,该函数将停止调用。
谢谢
编辑 :我想注销另一个功能的侦听器。不是我注册的功能。
您需要存储返回的函数并调用它以取消订阅该事件。
var deregisterListener = $scope.$on("onViewUpdated", callMe);
deregisterListener (); // this will deregister that listener
至少在1.0.4中可以在源代码中找到它:)。我将发布完整的代码,因为它很短
/**
* @param {string} name Event name to listen on.
* @param {function(event)} listener Function to call when the event is emitted.
* @returns {function()} Returns a deregistration function for this listener.
*/
$on: function(name, listener) {
var namedListeners = this.$$listeners[name];
if (!namedListeners) {
this.$$listeners[name] = namedListeners = [];
}
namedListeners.push(listener);
return function() {
namedListeners[indexOf(namedListeners, listener)] = null;
};
},
另外,请参阅docs。
问题内容: 我有以下几点: 据我了解,我需要取消注册监听事件。有人可以告诉我如何编码/执行此操作吗? 问题答案: 如果您不取消注册该事件,则将发生内存泄漏,因为传递给您的函数将不会被清除(因为对该函数的引用仍然存在)。更重要的是,在其范围内引用函数的任何变量也将泄漏。如果在应用程序中多次创建/销毁控制器,则将导致多次调用函数。幸运的是,AngularJS提供了两种有用的方法来避免内存泄漏和不良行为
我有一个Spring靴2.0.0。M7 Spring Webflux应用程序,其中我使用的是Thymeleaf Reactive。 我注意到,在我的微服务上,当我在SSE模式(文本/事件流)下调用一个返回数据流的endpoint时,即使该数据流已被正确处理,也会在该数据流上发生cancel()。 例如,这里有一个简单的控制器endpoint: 以下是我在SSE模式下请求时得到的订阅流量日志: 我们
Tendermint 会发出不同的事件,您可以通过Websocket订阅这些事件。这对于第三方应用程序(如 analysys)或检查状态非常有用。 事件列表 您可以通过 Websocket 调用 subscribe RPC 方法订阅上面的任何事件。 { "jsonrpc": "2.0", "method": "subscribe", "id": "0", "para
本文向大家介绍Angularjs中的事件广播 —全面解析$broadcast,$emit,$on,包括了Angularjs中的事件广播 —全面解析$broadcast,$emit,$on的使用技巧和注意事项,需要的朋友参考一下 Angularjs中不同作用域之间可以通过组合使用$broadcast,$emit,$on的事件广播机制来进行通信 介绍: $broadcast的作用是将事件从父级作用域传
本章介绍 UDP 介绍 ChannelHandler, Decoder, 和 Encoder 引导基于 Netty 的应用 前面的章节都是在示例中使用 TCP 协议,这一章,我们将使用UDP。UDP是一种无连接协议,若需要很高的性能和对数据的完成性没有严格要求,那使用 UDP 是一个很好的方法。最著名的基于UDP协议的是用来域名解析的DNS。这一章将给你一个好的理解的无连接协议所以你能够做出明智的
问题内容: 在该程序包下,您有诸如和之类的类,我想可以将其描述为一些可用的示例。 这些主题如何退订?没有方法,并且调用完全结束了Observable,对吗? 问题答案: 同时是an 和an ,可以像普通可观察对象一样取消订阅。使主题特别之处在于它是可观察者和观察者之间的桥梁。它可以通过释放观测到的项目,也可以发射新的项目。就像对期货的承诺一样,主体是可观察的对象。 这是主题科的简短说明: Asyn