[英]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.