簡體   English   中英

使用$ http的方法裝飾服務

[英]Decorating a service with a method that uses $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()才會收到上面提到的錯誤。

有沒有辦法做我想做的事情?

顯然, $injector注入$injector需要注入裝飾器,所以這將解決它:

angular.module('someModule', [])

.config(($provide, $injector)->  
  $provide.decorator('someService', ($delegate, $injector)->   
    $delegate.newMethod = ()->
      $http = $injector.get('$http')
      $http.get('someURL')
    return $delegate
  )
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM