论证' subController'不是一个功能,未定义

时间:2014-07-29 04:50:21

标签: angularjs

我在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) {
...
};

我需要实现模块智能控制器声明。

有人可以帮忙吗?

感谢。

1 个答案:

答案 0 :(得分:0)

你正在加载js lazily,其中包含“subController”的定义,但内联代码ng-controller="subController"甚至在响应返回之前就被执行了......因而错误。

<loadscript src="js/controllers/subController.js"></loadscript>
<div data-ng-controller="subController">
...
</div>
除非你为ng-controller编写另一个指令,只有在加载js文件之后才转换内部元素,否则我看不到这个错误。