初始化AngularJS Service来连接事件处理程序



我需要在应用启动时初始化我的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

运行块——在注入器创建后执行,用于启动应用。只有实例和常量可以注入到运行块中。这是为了防止在应用程序运行时进行进一步的系统配置。

最新更新