2013-08-02 2 views
0

Я искал способ получить услуги по инициализации моего приложения angular-js, но не смог найти, как заставить его работать. В моем случае я хочу получить службу определения местоположения $, чтобы наблюдать за URL-адресом.Как получить услугу от углового при инициализации?

Оглядываясь, я обнаружил, что услуги могут быть получены из инжектора. Чтобы получить инжектор, я бутстрапированный мое приложение, как это:

var angularApp = angular.module("MyApp", []); 
var angularInjector = angular.injector(["MyApp", "ng"]); 
angularApp.run(initializeAngularApp); 

initializeAngularApp() 
{ 
    var location = angularInjector.get("$location"); 
} 

Это выдает ошибку:

Unknown provider: $rootElementProvider <- $rootElement <- $location 

Я понимаю, что initializeAngularApp() должен вызываться после того, как форсунка делается инициализация. Но, судя по полученной ошибке, это не так.

Каков наилучший способ получить услуги от инжектора, когда мое приложение инициализируется?

ответ

0

Я нашел свой ответ, и мне не нужно было инстанцировать сам инжектор, чтобы получить услугу.

услуги являются инъекционные в функции запуска(), таким образом:

angularApp.run(intializeAngularApp); 

с

initializeAngularApp($rootScope, $location) 
{ 
    $rootScope.location = $location; 
    $rootScope.$watch("location.url()", function() { alert("url changed"); }); 
} 

работы.

Смежные вопросы