Heim >Web-Frontend >js-Tutorial >Warum ist mein AngularJS-Controller keine Funktion und wie kann ich das Problem beheben?
Controller ist kein Funktionsfehler in AngularJS: Umfassende Anleitung zur Lösung des Problems
Bei der Arbeit mit AngularJS kann ein Fehler auftreten, der darauf hinweist Ein Controller ist keine Funktion. Dieser Fehler tritt typischerweise auf, wenn versucht wird, Controller global zu definieren, was in AngularJS 1.3 nicht mehr zulässig ist. Um dieses Problem zu beheben, müssen Sie Controller explizit mit der module.controller-Syntax registrieren.
Lösung 1: Controller mit der module.controller-Syntax registrieren
Um einen Controller zu definieren Führen Sie unter Verwendung der module.controller-Syntax die folgenden Schritte aus:
angular.module('app', []) .controller('ContactController', ['$scope', function ContactController($scope) { // Controller logic here }]);
Lösung 2: Verwenden von $inject Annotation und AngularJS 1.3.5
Für AngularJS-Versionen 1.3.5 und höher können Sie die Annotation $inject verwenden, um die Abhängigkeiten für Ihren Controller zu definieren. Diese Anmerkung sollte oben in Ihrer Controller-Funktion platziert werden.
function ContactController($scope) { $scope.contacts = ["[email protected]", "[email protected]"]; $scope.add = function() { $scope.contacts.push($scope.newcontact); $scope.newcontact = ""; }; } ContactController.$inject = ['$scope']; angular.module('app', []).controller('ContactController', ContactController);
Globale Controller erneut aktivieren (optional)
AngularJS 1.3 erzwingt eine strikte Festlegung des Gültigkeitsbereichs, was dies verbietet globale Controller-Deklaration. Sie können globale Controller jedoch wieder aktivieren, indem Sie die Option „allowGlobals“ in Ihrer Modulkonfiguration verwenden:
angular.module('app') .config(['$controllerProvider', function($controllerProvider) { $controllerProvider.allowGlobals(); }]);
Zusätzliche Überlegungen:
Durch Befolgen dieser Lösungen können Sie den Fehler „Controller ist keine Funktion“ erfolgreich beheben in AngularJS und definieren Sie Controller effektiv.
Das obige ist der detaillierte Inhalt vonWarum ist mein AngularJS-Controller keine Funktion und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!