1

我知道在配置块之外调用 $provide 是不可能的。将 $provide 注入在 $provide.decorator 调用它的服务有什么技巧吗?

angular.module('app', [])
  .config(function($provide){
    $provide.decorator('myService', function($delegate){
      //inject the $provide into myService through $delegate
      return $delegate;
    }
  })

4

1 回答 1

1

$provide之所以特殊,是因为它是由 Angular 内部定义的,它可以在服务提供者之间通过注入器找到(因此它在 中可用config)但在服务实例之间不存在。

这可以很容易地修复

angular.module('app', []).config(function ($provide) {
  $provide.value('$provide', $provide);
});

但是这种方式也可以很容易地以不合时宜的方式定义组件。

于 2015-09-02T21:44:15.887 回答