我需要在应用启动时初始化我的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。
如果服务有一个构造函数,我可以在其中连接这个事件,那就太酷了。
我偶然发现了一些可以在文档中工作的东西(对于我的用例):
查看模块定义中的run函数:https://docs.angularjs.org/guide/module#module-loading-dependencies
运行块——在注入器创建后执行,用于启动应用。只有实例和常量可以注入到运行块中。这是为了防止在应用程序运行时进行进一步的系统配置。