我在app.js中声明了角度模块,如
var mainModule = angular.module('mainModule ', ["subModule"]);
var subModule = angular.module('subModule ', []);
和JS文件subController.js,其控制器定义为
subModule .controller("subController", ['$scope', '$timeout',"$rootScope", function ($scope, $timeout, $rootScope) {
...
}]);
和HTML文件subTemplate.html
//custom directive that will load the js file with ajax call
<loadscript src="js/controllers/subController.js"></loadscript>
<div data-ng-controller="subController">
...
</div>
上面的代码给我错误,如: 错误:[ng:areq] Argument&#39; subController&#39;不是一个功能,未定义
如果我在subController.js文件中更改控制器声明,如下所示它正在工作(但我不想像这样声明控制器)
function subController($scope, $timeout, $rootScope) {
...
};
我需要实现模块智能控制器声明。
有人可以帮忙吗?
感谢。
答案 0 :(得分:0)
你正在加载js lazily,其中包含“subController”的定义,但内联代码ng-controller="subController"
甚至在响应返回之前就被执行了......因而错误。
<loadscript src="js/controllers/subController.js"></loadscript>
<div data-ng-controller="subController">
...
</div>
除非你为ng-controller编写另一个指令,只有在加载js文件之后才转换内部元素,否则我看不到这个错误。