我是Angularjs的新手,并想知道以下代码如何在没有问题的情况下实际工作。这里的主要问题是,当创建模块“myControllersModule”时,它不会将“myServicesModule”列为其依赖项之一。但是当它创建控制器“logController”时,可以毫无问题地解决注入的“logservice”参数。这是因为“顶级”模块“myApp”的依赖关系数组中列出的所有“兄弟模块”都会以某种方式自动相互了解吗?
<!DOCTYPE html>
<html ng-app="myApp">
<head><title>My Test</title></head>
<script type="text/javascript" src="angular.js"></script>
<script type="text/javascript">
angular.module("myServicesModule", [])
.factory("logService", function() {
var messageCount = 0;
return {
log: function(msg) {
console.log("(LOG + " + messageCount++ + ") " + msg);
}
};
});
angular.module("myControllersModule", [])
.controller("logController", function($scope, logService) {
$scope.logit = logService.log;
});
angular.module("myApp", ['myControllersModule','myServicesModule']);
</script>
<body ng-controller="logController">
<button ng-click="logit('XYZ')">Click Me</button>
</body>
</html>
答案 0 :(得分:0)
如果要使用service -
,还需要在控制器级别注入依赖项angular.module("myControllersModule", ['myServicesModule'])
.controller("logController", function($scope, logService) {
$scope.logit = logService.log;
});
您将能够使用服务,但在编写单元测试用例时,由于控制器中缺少myServicesModule,它将引发错误