AngularJS:无法定义Controller

时间:2014-03-01 10:11:50

标签: javascript angularjs

我几天前刚刚开始使用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>

1 个答案:

答案 0 :(得分:1)

编辑:抓一点,我没有意识到的是角度很高兴混合它们。

问题在于您多次重新创建模块:

第4行:<script>var app = angular.module('myApp',[]);</script>

第28行:var app = angular.module("myApp");

第34行:angular.module('myApp').controller(...

小提琴:http://jsfiddle.net/uXpqL/