【问题标题】:Call $provide outside config. Angular在配置外部调用 $provide。角
【发布时间】:2015-11-28 12:31:17
【问题描述】:

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

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

【问题讨论】:

  • 为什么您的服务需要$provide
  • 这与作为参数注入是一样的,但抽象程度较低。
  • 重用由angular实现的装饰器模式。
  • @MiguelL 请注意,$provide.decorator 只有在装饰服务实例化(即第一次注入)之前注册才生效。

标签: javascript angularjs angularjs-injector


【解决方案1】:

$provide 是特殊的,因为它是 Angular 内部定义的,它可以被注入器 among service providers 找到(所以它在 config 中可用)但在 service instances 中没有。

这很容易解决

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

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

【讨论】:

    猜你喜欢
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    相关资源
    最近更新 更多