Heim > Artikel > Web-Frontend > Warum erhalte ich bei der Migration auf AngularJS Version 1.3 den Fehler „[$injector:modulerr]“?
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!