我试图用另一种方法装饰服务。问题是该方法使用$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()
时才会收到上述错误。
有没有办法做我想做的事情?
答案 0 :(得分:3)
显然,$injector
也需要注入装饰器,所以这将解决它:
angular.module('someModule', [])
.config(($provide, $injector)->
$provide.decorator('someService', ($delegate, $injector)->
$delegate.newMethod = ()->
$http = $injector.get('$http')
$http.get('someURL')
return $delegate
)
)