Saya baru saja mulai belajar Angular JS dan membuat beberapa sampel dasar namun saya terjebak dengan masalah berikut.
Saya telah membuat 2 modul dan 2 pengendali.
shoppingCart -> ShoppingCartController
namesList -> NamesController
Ada tampilan terkait untuk setiap pengontrol. Tampilan pertama membuat baik-baik saja tetapi yang kedua tidak rendering. Tidak ada kesalahan.
Tolong bantu saya menyelesaikan masalah ini.
Juga apakah ada kemungkinan untuk menambahkan konsol di Lihat untuk memeriksa nilai-nilai apa yang dilewatkan dari Kontroler.
misal di div berikut ini bisa kita tambahkan console.log dan output nilai-nilai controller
<div ng-app="shoppingCart" ng-controller="ShoppingCartController">
</div>
{{item.product_name}}
sebenarnya "mencetak" nilai dari model AndaJawaban:
Jadi pada dasarnya seperti yang disebutkan oleh Cherniv kita perlu mem-bootstrap modul untuk memiliki beberapa aplikasi-ng dalam halaman yang sama. Terima kasih banyak atas semua masukan.
sumber
Untuk menjalankan banyak aplikasi dalam dokumen HTML Anda harus secara manual bootstrap menggunakan angular.bootstrap ()
HTML
JS
Alasannya adalah hanya satu aplikasi AngularJS yang dapat di-boot secara otomatis per dokumen HTML. Yang pertama
ng-app
ditemukan dalam dokumen akan digunakan untuk mendefinisikan elemen root untuk bootstrap otomatis sebagai aplikasi.Dengan kata lain, walaupun secara teknis dimungkinkan untuk memiliki beberapa aplikasi per halaman, hanya satu petunjuk aplikasi-ng yang akan secara otomatis dipakai dan diinisialisasi oleh kerangka kerja Angular.
sumber
ngApp
arahan yang dapat di -boot secara otomatis per Dokumen HTML tetapi Anda dapat memiliki beberapa aplikasi selama Anda melakukan bootstrap secara manual.namesList
modul itu berada? Bisakah Anda memperbarui jawaban Anda, sehingga lebih jelas?Anda dapat menggunakan
angular.bootstrap()
langsung ... masalahnya adalah Anda kehilangan manfaat arahan.Pertama, Anda perlu mendapatkan referensi ke elemen HTML untuk bootstrap, yang berarti kode Anda sekarang digabungkan ke HTML Anda.
Kedua, hubungan antara keduanya tidak begitu jelas. Dengan
ngApp
Anda dapat dengan jelas melihat HTML apa yang terkait dengan modul apa dan Anda tahu di mana mencari informasi itu. Tetapiangular.bootstrap()
bisa dipanggil dari mana saja dalam kode Anda.Jika Anda akan melakukannya di semua cara terbaik adalah dengan menggunakan arahan. Itulah yang saya lakukan. Itu disebut
ngModule
. Berikut ini kode Anda akan terlihat seperti menggunakannya:Anda bisa mendapatkan kode sumbernya di:
http://www.simplygoodcode.com/2014/04/angularjs-getting-around-ngapp-limitations-with-ngmodule/
Diimplementasikan dengan cara yang sama seperti
ngApp
. Itu hanya panggilan diangular.bootstrap()
belakang layar.sumber
Dalam kasus saya, saya harus membungkus bootstrap aplikasi kedua saya
angular.element(document).ready
agar bisa berfungsi:sumber
angular.element(callback)
sebagai gantiangular.element(document).ready(callback))
. Lihat Referensi API angularJS angular.element . Juga github.com/angular/angular.js/commit/…Berikut adalah contoh dari dua aplikasi dalam satu halaman html dan dua conrollers dalam satu aplikasi:
sumber
Anda dapat menggabungkan beberapa modul dalam satu rootModule, dan menetapkan modul itu sebagai aplikasi-ng ke elemen superior, misalnya: tag tubuh.
kode ex:
sumber
sumber
Hanya satu aplikasi yang diinisialisasi secara otomatis. Yang lain harus diinisialisasi secara manual sebagai berikut:
Sintaksis:
Contoh:
API AngularJS
sumber
Anda dapat mendefinisikan Aplikasi Root dan di Aplikasi ini Anda dapat mendefinisikan beberapa nd-Kontroler. Seperti ini
sumber
sumber
Updated JsFiddle:
http://jsfiddle.net/ep2sQ/1011/sumber
ng-app
? jsfiddle.net/vwcbtzdgGunakan
angular.bootstrap(element, [modules], [config])
untuk memulai aplikasi AngularJS secara manual (untuk informasi lebih lanjut, lihat panduan Bootstrap ).Lihat contoh berikut:
sumber
sumber