我在一个angular模块中定义了一个提供者A,我正在尝试在另一个angular模块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有人能帮我破解这个吗?谢谢。
发布于 2016-06-05 04:20:06
显然,应该在config函数中将myProvider引用为myProviderProvider。这是关于命名提供者的。然后,您可以使用myProvider作为对任何其他服务/工厂的依赖,在这里,在myProvider的$get方法中返回的实例(任何提供程序)将可用于依赖的服务/工厂。
如果不是那么清楚,理解的人可以开发出答案。我会标出最好的作为答案。谢谢。
https://stackoverflow.com/questions/37634222
复制相似问题