У меня есть 3 модулей в моем AngularJS Приложение, например. main
, home
и product
. main
модуля, имеющий home
и product
модуля в качестве зависимостей (ng.module('main', ['home', 'product'])
), а home
и product
модулей, не имеющие какие-либо зависимостей (ng.module('product', [])
ng.module('phome', [])
), по-прежнему product
модуль доступа home
сервисного модуля? ЗАЧЕМ???Почему 2 разных модуля могут обращаться друг к другу при добавлении в зависимости от третьего модуля?
Ниже приведен пример кода приложения, который имеет тот же сценарий и ту же проблему. И это 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>
Это потому, что обслуживание на дому получает определяется как глобальная переменная, которая может быть доступна из любой точки в пределах приложения. Попробуйте прочитать http://tutorials.jenkov.com/angularjs/dependency-injection.html для получения дополнительной информации. – vipulsharma