我已经创建了一个需要监听$route
个事件的服务。我设置了$rootScope.$on()
的听众。我的服务如下:
application.factory('myListener', ['$rootScope', function ($rootScope) {
$rootScope.$on('$routeChangeStart', myListener.onChangeStart);
return {
onChangeStart: function() {
// Do something.
}
};
}]);
它工作正常,但我必须在我的应用程序中的某个地方至少注入一次此服务的实例,以便侦听器自行附加。
有没有办法强制创建实例而不将其注入某个地方?
也许你可以推荐一种更好的方法来构建这项服务?
谢谢。
答案 0 :(得分:2)
angular.injector().get('myListener');
应该为您提供服务的实例。
答案 1 :(得分:1)
如果您不需要该服务,而是需要在应用程序启动时运行的某些代码,那么您应该将其放入运行块中:
application.run(['$rootScope', function($rootScope) {
$rootScope.$on('$routeChangeStart', function() {
// Do something.
});
}]);