Оформление сервиса методом, который использует $http
Я пытаюсь украсить сервис другим способом. Проблема в том, что метод использует $http
который я не могу ввести в angular.config
заблокировать, потому что он еще не был инициализирован.
Я думал, что смогу обойти это, используя $injector
так как это будет выполняться только тогда, когда будет вызван метод, который я добавляю, но это приводит к ошибке:
Error: [$injector:unpr] Unknown provider: $http
Вот пример того, что я пытаюсь сделать:
angular.module('someModule', [])
.config(($provide, $injector)->
$provide.decorator('someService', ($delegate)->
$delegate.newMethod = ()->
$http = $injector.get('$http')
$http.get('someURL')
return $delegate
)
)
Позже, только когда я позвоню someService.newMethod()
я получу ошибку, упомянутую выше.
Есть ли способ сделать то, что я пытаюсь сделать?
1 ответ
Решение
Видимо $injector
Также необходимо ввести его в декоратор, так что это исправит это:
angular.module('someModule', [])
.config(($provide, $injector)->
$provide.decorator('someService', ($delegate, $injector)->
$delegate.newMethod = ()->
$http = $injector.get('$http')
$http.get('someURL')
return $delegate
)
)