我创建了一个需要监听$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/