Ketika menggunakan sudut 1.2 bukannya 1.07 potongan kode berikut ini tidak valid lagi, mengapa?
'use strict';
var app = angular.module('myapp', []);
app.config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider.
when('/', {
templateUrl: 'part.html',
controller: 'MyCtrl'
}).
otherwise({
redirectTo: '/'
});
}
]);
masalahnya ada di bagian konfigurasi injektor (app.config):
Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.2.0rc1/$injector/modulerr?p0=muninn&p1=Error%…eapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.0rc1%2Fangular.min.js%3A31%3A252)
Jika saya ingat dengan benar masalah ini dimulai dengan sudut 1.1.6.
javascript
angularjs
shoen
sumber
sumber
"Error: [$injector:nomod] Module 'ngRoute' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument."
kesalahan saya menghilang dengan menambahkan ini '()' di akhir
sumber
Satu hal lagi untuk ditambahkan ke daftar karena ini adalah hasil pertama yang muncul dengan pencarian google 'Kesalahan: [$ injector: modulerr] angular':
Jika Anda memiliki ketidakcocokan antara nama aplikasi Anda di 'index'html' Anda dan dalam definisi aplikasi javascript utama Anda, ini juga dapat menghasilkan kesalahan ini.
Misalnya jika HTML Anda terlihat seperti ini:
Dan JavaScript Anda terlihat seperti ini (mis. Memiliki kesalahan ketik pada nama aplikasi - myWebCite, bukan myWebSite):
kemudian kesalahan 'Kesalahan: [$ injector: modulerr] angular' juga akan dihasilkan.
sumber
Kesalahan noob bisa lupa menyertakan modul js
file dalam index.html sama sekali
sumber
Untuk mereka yang menggunakan kerangka kerja yang kompres, bundel, dan memperkecil file, pastikan Anda mendefinisikan setiap ketergantungan secara eksplisit karena kerangka kerja ini cenderung untuk mengubah nama variabel Anda. Itu terjadi pada saya saat menggunakan ASP.NET
BundleConfig.cs
untuk menyatukan skrip aplikasi saya.Sebelum
Setelah
Baca lebih lanjut di sini tentang Anotasi Ketergantungan Sudut.
sumber
Jika Anda memiliki kesalahan ini di konsol
([$injector:nomod], MINERR_ASSET:22)
, pastikan Anda tidak memasukkan kode aplikasi Anda sebelum memuatAngularJS
Saya melakukan itu dan setelah saya memperbaiki pesanan, kesalahan hilang.
sumber
Saya baru saja mengalami kesalahan yang sama, dalam kasus saya itu disebabkan oleh parameter kedua
angular.module
yang hilang - semoga ini dapat membantu seseorang dengan masalah yang sama.angular.module('MyApp');
angular.module('MyApp', []);
sumber
sumber
Saya memiliki masalah yang sama dan mencoba semua solusi yang mungkin. Tetapi akhirnya saya mengetahui dari dokumentasi bahwa
ngRoute
modul sekarang terpisah. Lihat tautan iniSolusi: Tambahkan skrip angular-route.js setelah skrip angular.min.js
sumber
Pemicu lain untuk kesalahan ini adalah meninggalkan "." keluar sebelum "sebaliknya" atau rute lain dalam definisi rute Anda:
Dirasa malu karena berhenti total, sekali lagi. Harus cinta JS!
sumber
Selain jawaban di bawah, jika Anda memiliki kesalahan ini di konsol (
[$injector:nomod]
,MINERR_ASSET:22
), tetapi semuanya tampaknya berfungsi dengan baik, pastikan Anda tidak memiliki duplikat yang termasuk dalam index.html Anda.Karena kesalahan ini juga dapat dinaikkan jika Anda memiliki duplikat menyertakan file, yang menggunakan modul ini, dan disertakan sebelum file dengan deklarasi modul yang sebenarnya.
sumber
Jika Anda membaca tutorial resmi angularjs https://docs.angularjs.org/tutorial/step_07
Harap diperhatikan juga dari ngRoute api https://docs.angularjs.org/api/ngRoute
sumber
John Papa disediakan masalah saya di ini komentar yang agak jelas: Kadang-kadang ketika Anda mendapatkan kesalahan itu, itu berarti Anda akan kehilangan file. Lain kali itu berarti modul telah didefinisikan setelah digunakan. Salah satu cara untuk mengatasi ini dengan mudah adalah dengan menamai file-file modul * .module.js dan memuatnya terlebih dahulu.
sumber
Masalah saya ada di config.xml. Mengubah:
untuk
memperbaikinya.
sumber
Ini kesalahan injektor. Anda mungkin telah menggunakan banyak file JavaScript sehingga injektor mungkin hilang.
Beberapa di sini:
Silakan periksa injektor yang perlu Anda masukkan ke dalam
app.js
sumber
Kadang saya melihat kesalahan ini ketika Anda beralih antara proyek dan menjalankan proyek pada port yang sama satu demi satu. Dalam kasus goto krom Developer Peralatan> Jaringan dan mencoba untuk memeriksa file yang ditulis js sebenarnya untuk:
if the file match with the workspce
. Untuk mengatasi ini pilih diDisable Cache
bawah jaringan.sumber
Setelah berbulan-bulan, saya kembali untuk mengembangkan aplikasi AngularJS ( 1.6.4 ), di mana saya memilih Chrome (PC) dan Safari (MAC) untuk pengujian selama pengembangan. Kode ini menyajikan Kesalahan ini : $ injector: modulerr Module Error on IE 11.0.9600 (Windows 7, 32-bit).
Setelah diselidiki, menjadi jelas bahwa kesalahan adalah karena forEach loop yang digunakan, hanya mengganti semua forEach loop dengan normal untuk loop untuk hal-hal untuk bekerja seperti ...
Itu pada dasarnya masalah IE11 (dijawab di sini ) daripada masalah AngularJS, tapi saya ingin meletakkan balasan ini di sini karena pengecualian yang diangkat adalah pengecualian AngularJS. Semoga ini bisa membantu sebagian dari kita di luar sana.
demikian pula. jangan gunakan fungsi lambda ... ganti saja () => {...} dengan fungsi ol yang baik () {...}
sumber
Saya punya masalah ini dan setelah memeriksa kode saya baris demi baris saya melihat ini
Saya baru saja mengubahnya menjadi
dan itu berhasil. jadi periksa tag Anda.
sumber