定义自定义提供程序和$injector:unp未知提供程序

Defining custom provider and $injector:unpr Unknow provider

本文关键字:程序 unp 未知 injector 自定义 定义      更新时间:2023-09-26

我试图了解提供者是如何工作的,我在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

我试图理解失败的原因,但我看不出我的错误,如果有人能帮助我,我会感激

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

    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";做什么?