AngularJS:从单独的.js文件注册控制器

时间:2015-09-29 22:10:52

标签: angularjs model-view-controller ng-controller

我是AngularJS的新手,并使用plnkr.co来学习如何使用角度。我在注册控制器时遇到了一些困难,它存储在模块初始化的单独.js中。谁能告诉我为什么以下不起作用?

index.html文件

<!DOCTYPE html>
<html ng-app="plunker">

<head>
  <meta charset="utf-8" />
  <title>AngularJS Plunker</title>
  <script>
    document.write('<base href="' + document.location + '" />');
  </script>
  <link rel="stylesheet" href="style.css" />
  <script data-require="angular.js@1.4.x" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.6/angular.min.js" data-semver="1.4.6"></script>
  <script src="app.js"></script>
  <script scr="mainCtrl.js"></script>
</head>

<body ng-controller="MainCtrl">
  <p>Hello {{name}}!</p>
</body>

</html>

app.js文件

angular.module('plunker', []);

mainCtrl.js文件

angular.module('plunker')
  .controller('MainCtrl', ['$scope', function($scope) {
    $scope.name = 'GitHub';
  }]);

对我来说,这会产生一个Argument'MainCtrl'不是函数,未定义。

1 个答案:

答案 0 :(得分:5)

替换

<script scr="mainCtrl.js"></script>

<script src="mainCtrl.js"></script>

由于拼写错误(scr而非src),未加载包含MainCtrl的源文件,因此MainCtrl未定义。