Heim >Web-Frontend >js-Tutorial >Warum erhalte ich in AngularJS die Meldung „Controller ist keine Funktion, wurde undefiniert'?

Warum erhalte ich in AngularJS die Meldung „Controller ist keine Funktion, wurde undefiniert'?

Susan Sarandon
Susan SarandonOriginal
2024-12-04 03:24:11506Durchsuche

Why Am I Getting

Globale Controller-Deklaration nicht zulässig

In modernen Versionen von AngularJS (1.3) wird die globale Definition von Controllern im globalen Bereich nicht mehr unterstützt. Die Fehlermeldung „Controller ist keine Funktion, wurde nicht definiert“ weist auf dieses Problem hin.

Um Controller korrekt zu registrieren, verwenden Sie die bevorzugte module.controller-Syntax. Hier sind Beispiele:

angular.module('app', [])
    .controller('ContactController', ['$scope', function ContactController($scope) {
        // Controller logic
    }]);

Oder mit Abhängigkeitsinjektion:

function ContactController($scope) {
    // Controller logic
}
ContactController.$inject = ['$scope'];
angular.module('app', []).controller('ContactController', ContactController);

Globale Controller zulassen

Als Breaking Change, globaler Controller Deklaration wurde deaktiviert. Dies kann jedoch mithilfe von „allowGlobals“ wieder aktiviert werden.

angular.module('app')
    .config(['$controllerProvider', function($controllerProvider) {
        $controllerProvider.allowGlobals();
    }]);

Zusätzliche Überlegungen

  • Stellen Sie sicher, dass das richtige Winkelstammelement die ng-app-Direktive enthält .
  • Stellen Sie sicher, dass die richtigen Skriptdateien enthalten sind.
  • Vermeiden Sie die mehrfache Definition desselben Moduls Zeiten, die zuvor registrierte Einheiten löschen können.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in AngularJS die Meldung „Controller ist keine Funktion, wurde undefiniert'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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