Heim  >  Artikel  >  Web-Frontend  >  Warum erhalte ich bei der Migration auf AngularJS Version 1.3 den Fehler „[$injector:modulerr]“?

Warum erhalte ich bei der Migration auf AngularJS Version 1.3 den Fehler „[$injector:modulerr]“?

Barbara Streisand
Barbara StreisandOriginal
2024-11-02 05:18:30737Durchsuche

Why am I getting the `[$injector:modulerr]` error when migrating to AngularJS version 1.3?

Angularjs: Uncaught Error: [$injector:modulerr] bei der Migration auf Version 1.3

AngularJS Version 1.3 führte eine Änderung ein, die die Kompatibilität beeinträchtigte Code, der für frühere Versionen geschrieben wurde. In Ihrem Fall tritt der Fehler [$injector:modulerr] auf, weil Sie eine globale Controller-Funktion (Strg) deklarieren, anstatt sie bei einem AngularJS-Modul zu registrieren.

AngularJS-Module definieren

In AngularJS 1.3 und höher besteht die bevorzugte Methode zum Deklarieren eines Controllers darin, ihn bei einem AngularJS-Modul zu registrieren. Module dienen als Container zum Organisieren und Konfigurieren von AngularJS-Komponenten wie Controllern, Anweisungen, Diensten und Filtern.

Fehler beheben

Um den Fehler zu beheben, müssen Sie Folgendes tun Erstellen Sie ein AngularJS-Modul und registrieren Sie Ihren Strg-Controller damit. Hier ist eine aktualisierte Version Ihres Codes:

<code class="javascript">function Ctrl($scope) {
  $scope.age = 24;
}

var myApp = angular.module('app', []);
myApp.controller('Ctrl', ['$scope', Ctrl]);</code>

Upgrade auf AngularJS 1.6

AngularJS 1.3 ist jetzt veraltet. Es wird empfohlen, auf AngularJS Version 1.6 zu aktualisieren, die über eine stabilere API und eine verbesserte Leistung verfügt. In AngularJS 1.6 ist die bevorzugte Methode zum Deklarieren eines Controllers die Verwendung einer Klasse:

<code class="typescript">export class Ctrl {
  constructor(public $scope: ng.IScope) {
    this.$scope.age = 24;
  }
}</code>

Und registrieren Sie ihn beim AngularJS-Modul:

<code class="javascript">myApp.controller('Ctrl', Ctrl);</code>

Wenn Sie diese Richtlinien befolgen, können Sie dies erfolgreich tun Migrieren Sie Ihre AngularJS-Anwendung auf Version 1.3 oder aktualisieren Sie auf die neueste Version 1.6 und beheben Sie den [$injector:modulerr]-Fehler.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich bei der Migration auf AngularJS Version 1.3 den Fehler „[$injector:modulerr]“?. 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