注入角度模块

时间:2015-03-23 20:54:57

标签: angularjs

我正在尝试将我的应用程序分成不同的模块,并将工厂注入控制器中 我认为这非常接近,只需要帮助找到差距。任何帮助表示赞赏。

index.html

<body ng:app='module_1'>
<script src="js/scripts/module_1.js'"></script>
<script src="js/scripts/dD/module_2.js"></script>
<script src="js/scripts/dD/module_3.js"></script>

module_1.js

angular.module('module_1', ['ngCookies','module_2','module_3'])

module_2.js

angular.module('module_2', [])
  .factory('module_2_Fact', ['$scope', function() {

      function test () {
          return "test"
      }

      return {
         test:test
      }


}]);

module_3.js

angular.module('module_3', ['module_2'])

    .controller('module_3_Ctrl', ['$scope', function(module_2_Fact) {

        console.log(module_2_Fact.test); // == > undefined 

    }]);

module_2_Fact.test返回无法读取属性&#39; test&#39;未定义的

似乎module_3找不到module_2

1 个答案:

答案 0 :(得分:1)

请删除&#39; $scope&#39;来自您的module_2_Fact

&#13;
&#13;
angular.module('module_1', ['module_2', 'module_3']).controller('MainCtrl', function($scope, module_2_Fact) {

  $scope.name = "Charlie";
  console.log(module_2_Fact.test)
  $scope.data = module_2_Fact.test();


})

angular.module('module_2', [])
  .factory('module_2_Fact', [
    function() {

      function test() {
        return {
          test: "that's my test"
        }
      }

      return {
        test: test
      }


    }
  ]);

angular.module('module_3', ['module_2'])

.controller('module_3_Ctrl', ['$scope',
  function(module_2_Fact) {

    console.log(module_2_Fact.test); // == > undefined 

  }
]);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="module_1">



  <div ng-controller="MainCtrl">
    <p>Hello {{name}}!</p>
    <p>{{data| json}}</p>
  </div>
&#13;
&#13;
&#13;