Я все еще дебютант на Angularjs. Я хочу динамически вводить зависимость службы (которую я создал) в моем контроллере.
Но когда я кодирую службу с зависимостями, я получил эту ошибку:
Ошибка: Неизвестный поставщик: $windowProvider < - $window < - base64
Это код контроллера.
var base64 = angular.injector(['servicesModule']).get('base64');
console.log("base64", base64.encode("my text will be encoded"));
Этот код работает:
var servicesModule = angular.module('servicesModule', []);
servicesModule.factory('base64', function() {
return {
name: 'base64',
readonly: false,
encode: function(input) {
return window.btoa(input);
},
decode: function(input) {
return window.atob(input);
}
};
});
Этот код не работает:
var extModule = angular.module('ext', []);
extModule.factory('base64', ['$window', function($window) {
return {
name: 'base64',
readonly: false,
encode: function(input) {
return $window.btoa(input);
},
decode: function(input) {
return $window.atob(input);
}
};
}]);
Другая проблема заключается в том, что служба находится в том же модуле, что и контроллер. Если у модуля есть зависимости, я не работаю (у меня есть зависимость routeProvider в моей конфигурации модуля):
Ошибка: Неизвестный поставщик: $routeProvider из mainModule
var mainModule = angular.module('main', [],
function($routeProvider, $locationProvider) {
//Some routing code
}
);
JS Fiddles
Тот же модуль с зависимостями (контроллер + служба): http://jsfiddle.net/yrezgui/YedT2/
Различные модули с зависимостями: http://jsfiddle.net/yrezgui/YedT2/4/
Различные модули без зависимостей: http://jsfiddle.net/yrezgui/YedT2/5/