13

我做错了什么?
根据文档,我应该能够注入...但我得到一个错误 - provider未知的提供者”module.config

http://jsfiddle.net/g26n3/

(function () {
    "use strict";

    angular.module("ab.core", [])
        .provider("ab.core.provider", function () {
            console.log("ab.core.provider - constructor");
            this.$get = function () {
                console.log("ab.core.provider - get");
                return { value: "test" };
            }
        })
        .config(["ab.core.provider", function (myProvider) { console.log("ab.core - config " + myProvider.value); }])
        .run(function () { console.log("ab.core - run"); });

    angular.module("ab", ["ab.core"])
        .config(["ab.core.provider", function () { console.log("ab - config"); }])
        .run(function () { console.log("ab - run"); });

    angular.bootstrap(document, ['ab']);

}());

其实我在这里有三个问题......
1)如何注入模块的ab.core.provider配置。 2)如何将相同的提供者()注入到模块的配置中。 3)如果我将相同的提供者注入到两个模块的配置中,它将是提供者的相同实例还是两个不同的实例?ab.core
ab.core.providerab

谢谢!

4

1 回答 1

31

您需要添加“Provider”后缀,这就是 Angular 知道的方式,但就像 shaunhusain 在评论中所说的那样,存在一些限制

http://jsfiddle.net/g26n3/1/

angular.module("ab.core", [])
  .provider("ab.core.provider", function () {

  })
  .config(["ab.core.providerProvider", function(p) {
    ...  
  }]

angular.module("ab", ["ab.core"])
  .config(["ab.core.providerProvider", function(p) {
    ...
  }]

遵循命名约定,这样看起来不错,.provider('camelCase', ...)

于 2013-11-13T22:50:49.420 回答