Я просто видел видео введение в AngularJS и использовать следующий примерКонтроллер AngularJS не работает, почему? (Простой пример контроллера)
Этот HTML:
<!DOCTYPE html>
<html ng-app>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body ng-controller="MainContrl">
<h2>{{message}}</h2>
<script src="bower_components/angular/angular.min.js"></script>
<script src="js/test.js"></script>
</body>
</html>
В JS:
var MainContrl = function($scope){
$scope.message = "Hello friend";
};
В пример, который я видел, эта структура работает, но когда я тестирую ее, она не работает. Консоль дает мне эту ошибку:
Error: [ng:areq] http://errors.angularjs.org/1.3.15/ng/areq?p0=MainContrl&p1=not%20a%20function%2C%20got%20undefined
Может использоваться таким образом контроллер? Или это плохая практика
Пример в Plunker: Code example
Вам необходимо создать модуль, а затем подключить к нему контроллер, но вызвать 'module.controller ('MainContrl', MainContrl)' – Casey
возможный дубликат [Почему глобальные функции считаются «неправильными» в Angular 1.3] (http : //stackoverflow.com/questions/27232551/why-are-global-functions-considered-wrong-in-angular-1-3) –
Строка ошибки, которую вы показываете, буквально дает ссылку на страницу, описывающую, что это не используя функцию «MainControl», как описывает @emodendroket. Это может показаться немного очевидным, но это особенность, которую я, безусловно, люблю в отношении AngularJS как рамки. –