我创建了一个需要监听$route事件的服务。我用$rootScope.$on()设置监听器。我的服务如下所示:

application.factory('myListener', ['$rootScope', function ($rootScope) {
    $rootScope.$on('$routeChangeStart', myListener.onChangeStart);
    return {
        onChangeStart: function() {
            // Do something.
        }
    };
}]);


它可以正常工作,但是我必须在应用程序中的某处至少注入一次此服务的实例,以使侦听器能够附加自身。

有没有一种方法可以强制创建实例而不将其注入到某个地方?

也许您可以推荐一种更好的方法来构建此服务?

谢谢。

最佳答案

如果您不需要该服务,而是需要一些在应用程序启动时运行的代码,则应将其放入运行块:

application.run(['$rootScope', function($rootScope) {
    $rootScope.$on('$routeChangeStart', function() {
        // Do something.
    });
}]);

关于javascript - 在AngularJS中自动创建服务实例(无延迟加载),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23227493/

10-09 07:45
查看更多