Heim > Web-Frontend > js-Tutorial > 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
Freigeben: 2024-11-02 05:18:30
Original
818 Leute haben es durchsucht

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

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

Und registrieren Sie ihn beim AngularJS-Modul:

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

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!

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