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

AngularJS: Register Controller from separate .js file

我是 AngularJS 的新手,正在使用 plnkr.co 学习如何使用 angular。我在注册控制器时遇到了一些困难,它存储在与模块初始化位置不同的 .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';
  }]);

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

替换

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

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

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