Mam dwa pliki, w których definiuję usługi w mojej aplikacji kątowej, ale kiedy próbuję użyć ich obu w mojej dyrektywie, pojawia się błąd informujący, że dostawca usług nie został znaleziony dla jakiejkolwiek dyrektywy, którą zdefiniuję jako drugą. Wygląda na to, że jedna usługa nadpisuje drugą. Jeśli zmienię definicję modułu w service2.js na myapp.services2, to działa. Myślę, że mógłbym dodać wiele fabryk do tego samego modułu w ten sposób. Czy ktoś może wskazać, co robię nieprawidłowo?Angularjs definiowanie usług dla tego samego modułu w różnych plikach
service1.js:
var services = angular.module('myapp.services',[]);
services.factory('Service1', function() {
// service code
});
service2.js:
var services = angular.module('myapp.services',[]);
services.factory('Service2', function() {
// service code
});
mydirective.js:
angular.module('myappdirective', []).directive('myapp', ['Service1', 'Service2',
function(service1,service2) {
// directive code
}]);
Definiujesz moduł usług dwa razy. Musisz go zdefiniować tylko raz (w jednym pliku). W moim najnowszym projekcie przeniosłem linię var services = angular.module do jej własnego pliku js (na pewno przesada). – aet
nie powinno to wyglądać po raz drugi, a nie przedefiniować? –
Jeśli usuniesz matrycę wtryskową, myślę, że będzie działać w ten sposób - angular.module ("myapp.services"); – aet