Heim > Web-Frontend > js-Tutorial > Warum ist mein AngularJS-Controller keine Funktion und wie kann ich das Problem beheben?

Warum ist mein AngularJS-Controller keine Funktion und wie kann ich das Problem beheben?

Mary-Kate Olsen
Freigeben: 2024-12-02 17:55:11
Original
965 Leute haben es durchsucht

Why is my AngularJS Controller Not a Function, and How Can I Fix It?

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
    }]);
Nach dem Login kopieren

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);
Nach dem Login kopieren

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();
    }]);
Nach dem Login kopieren

Zusätzliche Überlegungen:

  • Stellen Sie sicher, dass ng- app ist im Stammelement Ihrer HTML-Datei festgelegt.
  • Stellen Sie sicher, dass die richtigen Skripte in Ihrer Datei enthalten sind HTML.
  • Vermeiden Sie es, dasselbe Modul mehrmals zu definieren, da dadurch zuvor registrierte Entitäten gelöscht werden können.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage