使用使用 $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
也需要注入到装饰器中,所以这将解决它:
angular.module('someModule', [])
.config(($provide, $injector)->
$provide.decorator('someService', ($delegate, $injector)->
$delegate.newMethod = ()->
$http = $injector.get('$http')
$http.get('someURL')
return $delegate
)
)
我正在尝试用另一种方法装饰服务。问题是该方法使用 $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
也需要注入到装饰器中,所以这将解决它:
angular.module('someModule', [])
.config(($provide, $injector)->
$provide.decorator('someService', ($delegate, $injector)->
$delegate.newMethod = ()->
$http = $injector.get('$http')
$http.get('someURL')
return $delegate
)
)