#angularjs #angularjs-directive #angularjs-controller
#angularjs #angularjs-директива #angularjs-контроллер
Вопрос:
Я разрабатываю веб-приложение. В моем приложении я использую Angular JS. Я новичок в Angular JS. Но теперь у меня возникла проблема с объявлением контроллера. Вот мой код.
<html>
<head>
//files references
</head>
<script>
var app = angular.module('memeApp',['ngRoute','ui.bootstrap']);
</script>
<nav class="nav-bar">
<a href="page1">Home</a>
<a href="page2">Account</a>
</nav>
<div class="content" ng-app="memeApp" ng-controller="DefaultController">
//content
</div>
</div>
</body>
</html>
Как вы можете видеть, я еще ничего не сделал. Я объявляю контроллер с именем DefaultController. Поэтому, когда я проверяю журнал, он выдает следующую ошибку:
Итак, мой контроллер полностью не работает. Когда я добавляю js-код и для контроллера. Если я удалил директиву контроллера, ошибки исчезли. Почему мой контроллер не работает?
Комментарии:
1. Я нигде не вижу, чтобы ваш контроллер был определен, только вы вызываете его, когда он не существует
2. Вы объявили контроллер, который вы не определяли. Удалите его из вашего DOM или объявите его следующим образом :
app.controller('DefaultController', function(){});
3. Как вы можете видеть, я добавил ng-controller=»DefaultController» помимо объявления ng-app. @SterlingArcher
4. Существует большая разница между добавлением контроллера и его определением. ng-controller ожидает, что контроллер будет существовать, а вы его не определили.
5. Вот пара мини-советов: 1. Вам не хватает открытого тега ‘<body> 2. Вы должны поместить блок сценария непосредственно перед закрытием тега ‘</body>’. 3. Прочитайте ответ от @Micers
Ответ №1:
Вам необходимо определить функцию контроллера ‘DefaultController’, прежде чем использовать ее в теге html div.
Добавьте приведенный ниже код в свой тег script.
app.controller('DefaultController', ['$scope', function($scope){
}]);
Ответ №2:
Вам нужно где-то определить свой контроллер и сначала добавить его в качестве зависимости в приложение. Пример:
angular.module('app.controllers', [])
.controller('DefaultController' function() {
//do stuff
};
и в определении вашего приложения:
var app = angular.module('memeApp',['ngRoute','ui.bootstrap', 'app.controllers']);