Rumah > hujung hadapan web > tutorial js > Mengapa Saya Mendapat Ralat \'$injector:modulerr\' Semasa Migrasi AngularJS Saya ke Versi 1.3?

Mengapa Saya Mendapat Ralat \'$injector:modulerr\' Semasa Migrasi AngularJS Saya ke Versi 1.3?

DDD
Lepaskan: 2024-11-01 00:10:02
asal
806 orang telah melayarinya

Why Am I Getting the

Angularjs Ralat: [$injector:modulerr] Semasa Migrasi ke V1.3

Dalam Angularjs, ralat [$injector:modulerr] menunjukkan isu pergantungan modul, khususnya apabila berhijrah daripada versi terdahulu ke V1.3.

Kod Angularjs Pra-V1.3:

<code class="html"><body>
  <div ng-controller="Ctrl">
    ...
    <script>
      var Ctrl = function($scope) {
        ...
      };
    </script>
  </div>
</body></code>
Salin selepas log masuk

Siaran -V1.3 Kod Angularjs:

<code class="html"><body ng-app="app">
  <div ng-controller="Ctrl">
    ...
  </div>
  <script>
    function Ctrl($scope) {
      ...
    }

    angular.module('app', [])
      .controller('Ctrl', ['$scope', Ctrl]);
  </script>
</body></code>
Salin selepas log masuk

Perubahan dengan V1.3:

  • Pengisytiharan Pengawal Global Dilumpuhkan: Selepas Angularjs V1.3, fungsi pengawal global tidak boleh diisytiharkan di luar modul. Sebaliknya, pengawal mesti didaftarkan dalam modul.
  • Arahan ng-app Diperlukan: Arahan ng-app mesti ada pada elemen akar untuk bootstrap aplikasi Angularjs.

Penyelesaian:

  1. Buat Modul Angularjs: Gunakan angular.module() untuk mentakrifkan modul bernama 'app'.
  2. Daftar Pengawal dalam Modul: Panggil .controller() pada modul untuk menentukan pengawal bernama 'Ctrl' dengan kebergantungan yang sesuai dan fungsi pengawal.
  3. Tambahkan ng-app pada Elemen Root: Pastikan elemen HTML akar mempunyai atribut ng-app.

Nota Tambahan:

  • Adalah disyorkan untuk menggunakan versi terkini Angularjs (1.6 atau lebih tinggi) untuk sebab kestabilan dan keselamatan.
  • Jika anda perlu menyokong pengisytiharan pengawal global, anda boleh menggunakan angular.config().allowGlobalScoping(). Walau bagaimanapun, ini bukan amalan terbaik.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \'$injector:modulerr\' Semasa Migrasi AngularJS Saya ke 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan