我正在尝试将我的应用程序分成不同的模块,并将工厂注入控制器中 我认为这非常接近,只需要帮助找到差距。任何帮助表示赞赏。
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
答案 0 :(得分:1)
请删除&#39; $scope
&#39;来自您的module_2_Fact
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;