依赖模块的兄弟姐妹互相认识?

时间:2014-11-04 05:25:35

标签: angularjs

我是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>

1 个答案:

答案 0 :(得分:0)

如果要使用service -

,还需要在控制器级别注入依赖项
angular.module("myControllersModule", ['myServicesModule'])
        .controller("logController", function($scope, logService) {
            $scope.logit = logService.log;
        });

您将能够使用服务,但在编写单元测试用例时,由于控制器中缺少myServicesModule,它将引发错误