Rumah  >  Artikel  >  hujung hadapan web  >  Mengapa saya mendapat ralat `[$injector:modulerr]` apabila berhijrah ke AngularJS versi 1.3?

Mengapa saya mendapat ralat `[$injector:modulerr]` apabila berhijrah ke AngularJS versi 1.3?

Barbara Streisand
Barbara Streisandasal
2024-11-02 05:18:30813semak imbas

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

Angularjs: Uncaught Error: [$injector:modulerr] dalam Berhijrah ke Versi 1.3

AngularJS versi 1.3 memperkenalkan perubahan yang memecahkan keserasian kod yang ditulis untuk versi sebelumnya. Dalam kes anda, anda menghadapi ralat [$injector:modulerr] kerana anda mengisytiharkan fungsi pengawal global (Ctrl) dan bukannya mendaftarkannya dengan modul AngularJS.

Mentakrifkan Modul AngularJS

Dalam AngularJS 1.3 dan lebih baru, cara pilihan untuk mengisytiharkan pengawal adalah dengan mendaftarkannya dengan modul AngularJS. Modul berfungsi sebagai bekas untuk mengatur dan mengkonfigurasi komponen AngularJS seperti pengawal, arahan, perkhidmatan dan penapis.

Menyelesaikan Ralat

Untuk menyelesaikan ralat, anda perlu buat modul AngularJS dan daftarkan pengawal Ctrl anda dengannya. Berikut ialah versi kod anda yang dikemas kini:

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

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

Menaik taraf kepada AngularJS 1.6

AngularJS 1.3 kini ditamatkan. Adalah disyorkan untuk menaik taraf kepada AngularJS versi 1.6, yang mempunyai API yang lebih stabil dan prestasi yang lebih baik. Dalam AngularJS 1.6, cara pilihan untuk mengisytiharkan pengawal adalah melalui kelas:

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

Dan daftarkannya dengan modul AngularJS:

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

Dengan mengikuti garis panduan ini, anda boleh berjaya pindahkan aplikasi AngularJS anda ke versi 1.3 atau naik taraf kepada versi 1.6 terkini dan selesaikan ralat [$injector:modulerr].

Atas ialah kandungan terperinci Mengapa saya mendapat ralat `[$injector:modulerr]` apabila berhijrah ke AngularJS versi 1.3?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn