У меня есть Провайдер, определенный в угловом модуле, скажем A, и я пытаюсь использовать его в конфиге другого углового модуля say 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
Может кто-то, пожалуйста, помогите мне взломать это? Спасибо.
По-видимому, myProvider
должен быть myProviderProvider
как myProviderProvider
в config
. его о назначении провайдера. И тогда вы можете использовать myProvider
в качестве зависимости от любого другого сервиса/фабрики, и здесь экземпляр, возвращаемый методом $get
myProvider
(любой поставщик, если на то пошло), станет доступным для использования в зависимой службе/фабрике.
Если не так ясно, кто-то, кто понял, может разработать ответ. Я отвечу на лучший ответ. Спасибо.
html
код?<div ng-app="B" ng-controller="bCtrl"></div>