Ich habe 3 Module in meinem AngularJS App, z.B. main
, home
und product
. main
Modul home
und product
Modul als Abhängigkeiten (ng.module('main', ['home', 'product'])
) während home
und product
Module keine Abhängigkeiten aufweisen (ng.module('product', [])
ng.module('phome', [])
), noch product
Modul home
Modul Service zugreifen kann? WARUM???Warum können zwei verschiedene Module aufeinander zugreifen, wenn sie vom dritten Modul abhängen?
Unten ist Beispielcode meiner Anwendung, die das gleiche Szenario und das gleiche Problem hat. Und das ist JSfiddle Link.
<!DOCTYPE html>
<html ng-app="main">
<body ng-controller="MainController as mainController">
{{mainController.name}}
<script type="application/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
<script>
(function (ng) {
var homeModule = ng.module('home', []);
homeModule.service("HomeService", [function() {
var homeService = this;
homeService.getName = function() {
return "Home Service";
}
}]);
var productModule = ng.module('product', []);
productModule.service("ProductService", ["HomeService", function (HomeService) {
var productService = this;
productService.getName = function() {
return "Product Service - " + HomeService.getName();
};
}]);
var mainModule = ng.module('main', ['home', 'product']);
mainModule.controller("MainController", ['ProductService', function (ProductService) {
var mainController = this;
mainController.name = ProductService.getName();
}]);
})(angular);
</script>
</body>
</html>
Dies liegt daran, Home-Service als globalen Variable definiert wird, die von überall in der App zugegriffen werden kann. Lesen Sie http://tutorials.jenkov.com/angularjs/dependency-injection.html für weitere Informationen. – vipulsharma