Оформление сервиса методом, который использует $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
  )
)
Другие вопросы по тегам