定义自定义提供程序和$ injector:unpr Unknow提供程序

时间:2015-11-11 16:52:33

标签: javascript angularjs

我试图了解Hows提供程序的工作原理,我在angularjs文档中进行了测试,并编写了一个简单的提供程序:

(function( window, angular, undefined ){"use strict";
    function MyProviderExample(foo)
    {
      this.testdrive = function()
      {
        console.log(foo);
      }
      console.log("init");
    }
    angular.module('app',[])
    .provider('$myProvider',function (){
      var foo = "bar";
      this.$get = function()
      {
        return new MyProviderExample(foo);
      }
      console.log("ey....");

    }).config(function($myProvider){
      console.log("wut");
      $myProvider.foo = "foo";
    });
})(window, window.angular);

当我运行代码时总是返回

Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to:
Error: [$injector:unpr] Unknown provider: $myProvider

我试图了解失败但我无法看到我的错误,如果有人可以帮助我欣赏

1 个答案:

答案 0 :(得分:0)

我认为您需要从function($myProvider)部分删除.config。像这样:

    angular.module('app', [])
    .provider('$myProvider', function () {            
        this.$get = function () {
            // --
        }
        console.log("loaded $myProvider");
    })
    .config(function(){
        console.log("loaded config");
    })
    .controller('Main',
        function main() {
            console.log('loaded mycontroller')
        });

你想用$ myProvider.foo = "foo";做什么?