Saya memiliki arahan dengan isolate-scope (sehingga saya dapat menggunakan kembali arahan di tempat lain), dan ketika saya menggunakan arahan ini dengan ng-repeat, itu gagal berfungsi.
Saya telah membaca semua dokumentasi dan jawaban Stack Overflow tentang topik ini dan memahami masalahnya. Saya yakin saya telah menghindari semua tipu muslihat biasa.
Jadi saya mengerti bahwa kode saya gagal karena cakupan yang dibuat oleh ng-repeatdirektif. Direktif saya sendiri membuat lingkup-isolasi dan melakukan pengikatan data dua arah ke objek dalam lingkup induk. Direktif saya akan menetapkan nilai objek baru ke variabel terikat ini dan ini berfungsi dengan sempurna ketika direktif saya digunakan tanpa ng-repeat(variabel induk diperbarui dengan benar). Namun, dengan ng-repeat, tugas membuat variabel baru dalam ng-repeatcakupan dan variabel induk tidak melihat perubahannya. Semua ini seperti yang diharapkan berdasarkan apa yang telah saya baca.
Saya juga membaca bahwa ketika ada beberapa arahan pada elemen tertentu, hanya satu ruang lingkup yang dibuat. Dan bahwa a prioritydapat disetel di setiap arahan untuk menentukan urutan penerapan arahan; direktif diurutkan berdasarkan prioritas dan kemudian fungsi kompilasinya dipanggil (cari kata prioritas di http://docs.angularjs.org/guide/directive ).
Jadi saya berharap saya dapat menggunakan prioritas untuk memastikan bahwa arahan saya berjalan terlebih dahulu dan akhirnya membuat lingkup-isolasi, dan ketika ng-repeatdijalankan, itu menggunakan kembali lingkup-isolasi daripada membuat lingkup yang secara prototipikal mewarisi dari lingkup induk. The ng-repeatnegara dokumentasi yang yang berjalan direktif pada tingkat prioritas 1000. Tidak jelas apakah 1itu tingkat prioritas yang lebih tinggi atau tingkat prioritas yang lebih rendah. Ketika saya menggunakan tingkat prioritas 1dalam arahan saya, tidak ada bedanya, jadi saya mencoba 2000. Tapi itu memperburuk keadaan: ikatan dua arah undefinedsaya menjadi dan arahan saya tidak menampilkan apa pun.
Saya telah membuat biola untuk menunjukkan masalah saya . Saya telah mengomentari prioritypengaturan dalam arahan saya. Saya memiliki daftar objek nama dan direktif disebut name-rowyang menunjukkan bidang nama depan dan belakang di objek nama. Ketika nama yang ditampilkan diklik, saya ingin mengatur selectedvariabel dalam lingkup utama. Larik nama, selectedvariabel diteruskan ke name-rowdirektif menggunakan data-binding dua arah.
Saya tahu bagaimana membuat ini bekerja dengan memanggil fungsi di lingkup utama. Saya juga tahu bahwa jika selectedada di dalam objek lain, dan saya mengikat objek luar, semuanya akan bekerja. Tetapi saya tidak tertarik dengan solusi tersebut saat ini.
Sebaliknya, pertanyaan yang saya miliki adalah:
- Bagaimana cara mencegah
ng-repeatpembuatan cakupan yang secara prototipikal mewarisi dari lingkup induk, dan malah membuatnya menggunakan lingkup-isolasi direktif saya? - Mengapa tingkat prioritas
2000dalam arahan saya tidak berfungsi? - Dengan Batarang, apakah mungkin untuk mengetahui jenis scope yang digunakan?







scope: trueuntuk direktif Anda. Lihat juga (jika Anda belum melakukannya) stackoverflow.com/questions/14914213/… Juga, hanya karena sebuah direktif akan digunakan di banyak tempat tidak berarti kita harus secara otomatis menggunakan lingkup isolasi.