我需要在应用程序引导时初始化我的Angular Service,以便它可以响应某些全局事件"。这里的subscribe方法只是连接一个需要在应用程序启动后监听的处理程序。
如何解除" init"应用程序加载时的功能?
如果我按照我的方法偏离轨道,请告诉我应该去哪个方向!
app.service('serviceName', ['someOtherService', function(someOtherService) {
this.init = function() {
subscribe("someEvent", this.someEventHandler);
};
this.someEventHandler = function(data) {
//do stuff
};
}]);
编辑: 在我的用例中添加更多信息:
我订阅的事件处理程序来自我在服务器上订阅的websocket频道。我想尽快开始听事件。到目前为止,我根本不关心DOM。
如果有一个服务的构造函数可以将此事件连接起来,那将会很酷。
答案 0 :(得分:0)
我在文档中偶然发现了一些可行的(对于我的用例):
查看模块定义的运行功能:https://docs.angularjs.org/guide/module#module-loading-dependencies
运行块 - 在创建注入器后执行并用于启动应用程序。只有实例和常量才能注入运行块。这是为了防止在应用程序运行时进一步进行系统配置。