因为刚刚接触 Angular,所以有些概念还很模糊,对于这个问题尝试通过 Google 查找答案,但并未找到合适的解答,所以想在这里请教一下各位,这里是一个大概的代码:
<p ng-repeat="item in list" class="need-another-js"></p>
<script>
$('.need-another-js').click(function(){
// do something
})
</script>
如果把 ng-repeat
去掉,JS 代码的效果可以实现,但是加上 ng-repeat
后,效果就不存在,这里是因为 Angular 作用域的问题吗?
Ini tiada kaitan dengan skop, ia hanyalah bentuk ralat biasa
jquery
=>angular
.AngularJS
arahan, sebagai API "deklaratif", sangat berbeza daripada API "imperatif"jquery
Mudah untuk membuat kesilapan apabila anda mencampurkannya.Ralat akal sehat asas,
id
digunakan untuk menunjukkan keunikan unsur, tetapi anda menggunakannya padang-repeat
, yang bermaksud mungkin terdapat beberapaid
elemen, kesemuanya adalahneed-another-js
. Ini tiada kena mengena denganjquery
atauangular
, ia semata-matahtml
kurang pengetahuanng-repeat
, seperti arahan yang diberikan olehangular
, perlu melalui prosesangular
dancompile
linking
Akibatnya, apabila$('#need-another-js').click
anda mendaftarkan acara untuk elemen#need-another-js
, elemen ini sebenarnya belum dijana menjadiangular
olehDOM
, dan ini adalah kunci untuk tidak berkuat kuasa.Hanya sebagai contoh anda, anda boleh membuat pengubahsuaian berikut untuk menjadikannya berkesan:
Walaupun saya tidak mengesyorkan cara penulisan ini, kerana anda memilih untuk mencampurkan "imperatif" dan
声明式
API, anda mesti mempunyai alasan anda.Tambahan:
Mengenai cara
angular
berfungsi, saya rasa ia berguna untuk pelajar yang baru mula membaca pengenalan ini di laman web rasmi:Alamat dokumen: konsep
angular mempunyai acara mengikat yang menyokong ng-klik
Anda boleh cuba menulisnya seperti ini
Semasa saya belajar Angular, saya bertukar terus dari jq ke sudut boleh melakukan semua yang jq boleh lakukan
ng-repeat adalah untuk menambahkan elemen dom secara dinamik Jika anda menggunakan kaedah klik untuk mengikat acara kepada elemen yang ditambah secara dinamik, ia tidak akan dicetuskan. Jika anda suka menggunakan jquery, gunakan kaedah yang dicadangkan oleh leftstick, tetapi disyorkan untuk menggunakan kaedah sudut yang dicadangkan oleh mumofa