0

我在一个角度模块说 A 中定义了一个提供程序,我试图在另一个角度模块说 B 的配置中使用它,如以下代码片段所示:

var A = (function(ng){
'use strict';

var a = ng.module('A',[]);

a.provider('MyProvider', function(){
    this.$get = ['$q', function($q){
        return new myService($q);
    }]
});

function myService($q){
    var data = // Some data
    this.getAllData = function(){
        return $q(function(resolve,reject){
            resolve(data)
        });
    }
}

//ng.bootstrap(a);

return a;
})(angular);

应用程序B如下:

//IIFE pattern for modularization

var B = (function(angular) {
    'use strict';


// initialize the Angular app
var b = angular.module('B', ['ui.router', 'A']);

b.config(config);

function config($stateProvider, $urlRouterProvider, myProvider){
    myProvider.getAlldata().then(function(data){
        //do some processing on data related to routes...
    }, function(err){
        //handle Err
    }); 
}


return b;
})(angular);

现在我得到了错误:

angular.js:68 Uncaught Error: [$injector:modulerr] Failed to instantiate module ngApp due to:Error: [$injector:unpr] Unknown provider: RouteProvider

有人可以帮我破解这个吗?谢谢你。

4

1 回答 1

0

显然myProvider应该myProviderProviderconfig函数中引用。它关于命名提供者。然后您可以将myProvider其用作任何其他服务/工厂的依赖项,并且在此(任何提供者)的$get方法中返回的实例myProvider将可用于依赖的服务/工厂。

如果不是很清楚,了解的人可以开发答案。我会将最好的标记为答案。谢谢你。

于 2016-06-04T20:20:05.990 回答