我几天前刚刚开始使用AngularJS进行开发,这个问题确实让我烦恼。
我一直收到这个错误:
Error: ng:areq
Bad Argument
Argument 'NewStudentCtrl' is not a function, got undefined
所有其他控制器都在工作,因为我在其他文件中使用它们,只有NewStudentCtrl
不起作用。
我尝试了很多不同的东西,只有一个工作:在使用控制器之前,在HTML文件本身内使用function NewStudentCtrl ($scope) {}
定义控制器。问题是我想将HTML和JS分成单独的文件。
请注意,提供的源代码经过简化,可能会有很少的缩进或语法错误。
<html ng-app="myApp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.12/angular.min.js"></script>
<script>var app = angular.module('myApp',[]);</script>
</head>
<body>
<div ng-controller="NewStudentCtrl">
<div ng-controller="AccountMenuCtrl">
</div>
<script src="js/account-menu.js">
function AccountMenuCtrl ($scope) {
}
</script>
<div ng-controller="OrtsteileCtrl">
<option value="{{ortsteil.ID}}" ng-repeat="ortsteil in ortsteile">
{{ortsteil.Name}}
</option>
</div>
</div> <!-- end NewStudentCtrl -->
<!-- Loading dependencies -->
<script src="js/jquery-1.8.3.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/new-student.js">
var app = angular.module("myApp");
function NewStudentCtrl ($scope) {
}
</script>
<script src="js/plz.js">
angular.module('myApp').controller('OrtsteileCtrl', ['$scope', '$http',
function($scope, $http) {
}]);
</script>
</body>
</html>
答案 0 :(得分:1)
编辑:抓一点,我没有意识到的是角度很高兴混合它们。
问题在于您多次重新创建模块:
第4行:<script>var app = angular.module('myApp',[]);</script>
第28行:var app = angular.module("myApp");
第34行:angular.module('myApp').controller(...