AngularJS: зарегистрируйте контроллер из отдельного файла .js

Я новичок в AngularJS и использую plnkr.co, чтобы узнать, как использовать angular. У меня возникли трудности с регистрацией контроллера, который хранится в отдельном .js, откуда инициализируется модуль. Может ли кто-нибудь сказать мне, почему нижеприведенное не работает?

index.html file

<!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="[email protected]" 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» не является функцией, которая не определена.


person Jade L.    schedule 29.09.2015    source источник


Ответы (1)


Заменять

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

с

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

Из-за опечатки (scr вместо src) исходный файл, содержащий MainCtrl, не загружается, поэтому MainCtrl не определено.

person Michael P. Bazos    schedule 29.09.2015
comment
У вас есть какая-нибудь ссылка из справочного центра по этому поводу? - person Michael P. Bazos; 30.09.2015
comment
Я слишком зависим от intellisense в эти дни :) - person Jade L.; 30.09.2015
comment
Это одна из причин, перечисленных под кнопкой закрытия голосования, но подумайте об этом так: поможет ли ответ будущему посетителю? Я так не думаю, поскольку решение едва ли связано с предполагаемой проблемой исходного вопроса, и ОП можно помочь с помощью комментария. - person New Dev; 30.09.2015