Rumah  >  Artikel  >  hujung hadapan web  >  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
DDDasal
2024-11-01 00:10:02718semak imbas

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>

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>

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!

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