Saya perhatikan pertanyaan yang sama diajukan beberapa kali di sini, saya mencoba menyelesaikannya tetapi tidak ada yang membantu.
Saya mengikuti tutorial ini dengan video egghead.
Tetapi ketika saya masuk ke bagian Pengontrol dan Berbagi data antar pengontrol, saya tidak bisa membuatnya berfungsi.
Saat saya menjalankannya dengan Chrome, saya mendapatkan kesalahan ini di konsol:
'argumen' FirstCtrl 'bukan sebuah fungsi, tidak terdefinisi'.
Saya benar-benar tidak tahu apa yang salah. Kodenya sama dengan tutorial.
HTML
<!DOCTYPE html>
<html ng-app>
<head>
<title>AngularJS Tutorials: Controllers</title>
<link rel="stylesheet" href="mystyle.css">
<script src="http://code.angularjs.org/1.2.0-rc.2/angular.min.js"></script>
</head>
<body>
<div ng-app="">
<div ng-controller="FirstCtrl">
<h1> {{data.message + " world"}}</h1>
<div class="{{data.message}}">
Wrap me in a foundation component
</div>
</div>
</div>
<script type="text/javascript" src="main.js"></script>
</body>
</html>
main.js
function FirstCtrl($scope){
$scope.data = { message: "Hello" };
}
javascript
angularjs
Pumba
sumber
sumber
Jawaban:
Anda memiliki 2
ng-app
arahan tanpa nama di html Anda.Kehilangan satu di div Anda.
Perbarui
Mari kita coba pendekatan yang berbeda.
Tentukan modul dalam file js Anda dan tetapkan
ng-app
direktif untuk itu. Setelah itu, tentukan controller seperti komponen ng, bukan sebagai fungsi sederhana:dan bagian js:
Berikut demo online yang melakukan hal itu: http://jsfiddle.net/FssbL/1/
sumber
Saya mendapat pesan kesalahan yang persis sama dan dalam kasus saya ternyata saya tidak mencantumkan file JS pengontrol (misalnya first-ctrl.js) di index.html saya
sumber
Saya baru saja melakukan tutorial ini dan mengikuti jawaban @ gion_13. Masih tidak berhasil. Selesaikan dengan membuat nama ng-app saya di indeks identik dengan yang ada di file js saya. Persis sama, bahkan kutipannya. Begitu:
dan js:
Aneh bagaimana ng-app harus identik tetapi ng-controller tidak.
sumber
Anda harus memberi nama Anda
ng-app
, memberi aplikasi Anda namespace; hanya menggunakanng-app
tidak cukup .Dari pada:
Anda akan membutuhkan sesuatu seperti ini sebagai gantinya:
Kemudian, seperti:
sumber
Satu lagi bagus: Mendefinisikan ulang modul secara tidak sengaja. Saya menyalin / menempelkan barang-barang sedikit terlalu bersemangat sebelumnya hari ini dan akhirnya memiliki definisi modul di suatu tempat, yang saya timpa dengan definisi pengontrol saya:
Kemudian dalam definisi saya, saya seharusnya merujuknya seperti ini:
Yang saya lakukan adalah:
Perhatikan braket ekstra dalam panggilan ke
angular.module
.sumber
hapus ng-app = "" dari
dan lakukan saja
sumber
Saya juga menghadapi masalah yang sama. Tetapi masalahnya adalah saya lupa mencantumkan modul dalam daftar modul tempat ng-app bergantung.
sumber
Saya telah menghadapi masalah ini dan diperbaiki dengan cara berikut:
pertama-tama hapus ng-app dari:
tambahkan nama ng-app ke myApp:
tambahkan baris kode ini sebelum fungsi:
tampilan akhir skrip:
sumber
Dalam kasus saya, pesan ini berasal dari injeksi ketergantungan yang terlupakan di modul utama
sumber
Ini bisa terjadi jika Anda salah konfigurasi menelan untuk menambahkan kode aplikasi sudut lebih dari sekali. Dalam kasus saya, ini ada di index.js, dan itu menambahkannya sebagai bagian dari direktori file js (digabung dalam gulp) sebelum dan sesudah deklarasi pengontrol saya. Setelah saya menambahkan pengecualian agar index.js tidak diperkecil dan disuntikkan untuk kedua kalinya, aplikasi saya mulai berfungsi. Tip lain jika salah satu solusi di atas tidak mengatasi masalah Anda.
sumber
Pertama - Jika nama modul tidak ditentukan, di JS Anda tidak akan dapat mengakses modul dan menautkan pengontrol ke modul tersebut.
Anda perlu memberikan nama modul ke modul sudut. ada perbedaan juga dalam menggunakan modul pendefinisian 1. angular.module ("firstModule", []) 2. angular.module ("firstModule")
1 - pertama adalah mendeklarasikan modul baru "firstModule" tanpa ketergantungan yang ditambahkan dalam argumen kedua. 2 - Ini untuk menggunakan "firstModule" yang diinisialisasi di tempat lain dan Anda menggunakan mencoba mendapatkan modul yang diinisialisasi dan melakukan modifikasi padanya.
sumber
saya menghadapi masalah ini tetapi saya dapat memperbaiki masalah ini dengan mengganti nama pengontrol, silakan coba.
sumber
terkadang sesuatu yang salah dalam sintaks kode di dalam fungsi menyebabkan kesalahan ini. Periksa fungsi Anda dengan benar. Dalam kasus saya itu terjadi ketika saya mencoba untuk menetapkan bidang Json dengan nilai dan menggunakan titik dua: untuk membuat tugas alih-alih tanda sama dengan = ...
sumber
Saya memiliki dua pengontrol dengan nama yang sama yang ditentukan dalam dua file javascript yang berbeda. Mengiritasi sudut itu tidak dapat memberikan pesan kesalahan yang lebih jelas yang menunjukkan konflik namespace.
sumber
Saya tidak yakin tentang tutorial ini tetapi saya memiliki masalah yang sama ketika saya lupa memasukkan file ke dalam proses minimisasi grunt / gulp.
Semoga membantu.
sumber
Perhatikan casing surat Anda juga. Saya menghabiskan waktu berjam-jam untuk mengejar serangga ini.
sementara saya memberi nama pengontrol
Mereka semua harus diberi nama secara konsisten, dalam hal ini Lupa p wdController dengan huruf kecil p.
sumber