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

Barbara Streisand
Lepaskan: 2024-11-02 05:18:30
asal
812 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Dan daftarkannya dengan modul AngularJS:

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

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan