AngularJS ng-controller не работает
Я только что начал изучать AngularJS из w3schools. Я пытаюсь практиковать примеры, о чем они упоминали в учебниках. Все отлично работает, но когда я пришел в "AngularJS Controllers", он не работает должным образом, как хорошо работает в w3schools Try it Yourself ". Я разработал свой код в этом примере скрипта.
Мой script выглядит следующим образом:
function personController($scope) {
$scope.firstName= "John";
$scope.lastName= "Doe";
}
Попробуйте помочь мне и предложите мне хороший учебник (или любой бесплатный pdf файл).
Ответы
Ответ 1
Это ваш исправленный скрипт.
Хорошая практика для angular заключается в том, что определение контроллера должно выглядеть примерно так:
angular.module("app", []).controller("personController", function($scope) {
$scope.firstName = "John";
$scope.lastName = "Doe";
});
И, без сомнения, лучшим учебником для изучения основ angular является CodeSchool один!
Надеюсь, что это поможет.
Ответ 2
Это новый подход. Мы больше не можем использовать контроллеры без модуля. Посмотрите этот. Просто добавьте модуль и добавьте контроллер, тогда у вас не будет проблем.
Ответ 3
Я только что изменил ваш скрипт js. Пожалуйста, проверьте пример скрипта
function personController($scope) {
$scope.firstName= "John";
$scope.lastName= "Doe";
}
Не было проблем с вашим кодом, кроме настроек скрипта JS от onLoad до Без обертки - в голове
![enter image description here]()
Ответ 4
Вам нужно создать модуль приложения, а затем добавить к нему контроллер. В angular все зависит от зависимостей. Во-вторых, вам нужно имя приложения.
Основной учебник находится на главной странице: https://docs.angularjs.org/tutorial/step_00
Я начал с этого, и он отлично справился со мной. Просто сделайте все шаги, начиная с шага 1.
Ответ 5
Это общий результат поиска для "Angular Controller Not Working", поэтому я подумал, что было бы полезно добавить решение, в котором была исправлена моя проблема с "контроллером".
У меня был базовый маршрут с $routeProvider
, указывающий на файл контроллера и partialUrl как таковой:
$routeProvider.when('/', {
templateUrl: 'partials/home.html',
controller: 'homePage'
});
У меня было несколько других маршрутов, и все эти контроллеры работали, но по какой-то причине мой первый маршрут не стал. Оказывается, у меня была небольшая логическая ошибка в моем частичном, и это предотвратило ЛЮБОЙ код моего контроллера.
Тупая маленькая ошибка, но я был застигнут врасплох, что это была логическая проблема в моей частичной части, которая мешала запуску какого-либо контроллера. Это заняло гораздо больше времени, чем я хотел бы признать, потому что проблема не была в моем "JavaScript", хотя присутствовали ошибки консоли. Радости плотно связанного кода переднего плана, amiright?
Ответ 6
То же самое может быть, если вы попытаетесь вложить ngApp в anothe ngApp.
В документации написано:
AngularJS applications cannot be nested within each other.
Ответ 7
Вы должны ввести функцию в качестве параметра внутри модуля
var app = angular.module('app',[]);
app.controller('personController',function($scope){
$scope.firstName = 'John';
$scope.lastName = 'Smith';
});
Ответ 8
добавив np-app="myApp"
в любой тег html, например <html ng-app = "myApp">
, мой код отлично работает.