使用使用 $http 的方法修饰服务



我正在尝试用另一种方法装饰服务。问题是该方法使用了我无法注入angular.config块中的$http,因为它尚未初始化。

我以为我可以通过使用$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
  )
)

相关内容

  • 没有找到相关文章

最新更新