Saya mencoba untuk menghapus jquery dari aplikasi Angular.js saya untuk membuatnya lebih ringan, dan meletakkan jqLite Angular sebagai gantinya. Tetapi aplikasi menggunakan banyak penggunaan find ('# id') dan find ('.classname'), yang tidak didukung oleh jqLite, hanya 'nama tag' (sesuai dokumentasi)
bertanya-tanya apa yang menurut Anda akan menjadi pendekatan terbaik untuk mengubahnya. Salah satu pendekatan yang saya pikirkan adalah membuat tag HTML khusus. Misalnya: perubahan
<span class="btn btn-large" id="add-to-bag">Add to bag</span>
untuk
<a2b style="display:none;"><span class="btn btn-large" >Add to bag</span></a2b>
dan
$element.find('#add-to-bag')
untuk
$element.find('a2b')
Ada pemikiran? ide lain?
Terima kasih
Lior
DomElement.querySelector(".myclassname")
untuk memilih satu elemen dekendan menggunakan pemilih css, atau semua yang cocok dengan menambahkan Semua ke dalamnya:DomElement.querySelectorAll(".myclassname")
Itu tentu saja tidak berfungsi di IE <9.a2b
elemen, Anda harus mendefinisikan sebuah direktif. Dapatkah Anda melakukan apa yang perlu dilakukan dalam fungsi tautan direktif, dan oleh karena itu menghindari kebutuhan untuk memanggil find () sepenuhnya? Demikian pula dengan kelas Anda - dapatkah Anda mendefinisikan direktif dan memasukkan fungsionalitas yang Anda butuhkan ke dalam fungsi tautan (atau kompilasi) direktif?Jawaban:
Pada dasarnya, dan seperti yang dicatat oleh @ kevin-b:
Catatan: Jika Anda ingin melakukan ini dari pengontrol Anda, Anda mungkin ingin melihat bagian "Menggunakan Pengontrol dengan Benar" di panduan pengembang dan mengubah logika presentasi Anda menjadi arahan yang sesuai (seperti <a2b ...>) .
sumber
angular.element(elem[0].querySelector('.classname'));
angualr menggunakan versi jquery yang lebih ringan yang disebut jqlite yang berarti tidak memiliki semua fitur jQuery. berikut adalah referensi di dokumen angularjs tentang apa yang dapat Anda gunakan dari jquery. Dokumen Angular Element
Dalam kasus Anda, Anda perlu mencari div dengan ID atau nama kelas. untuk nama kelas yang bisa Anda gunakan
atau Anda dapat menggunakan cara yang jauh lebih sederhana dengan pemilih kueri
itu tidak sefleksibel jQuery tapi apa
sumber
Jika
elem.find()
tidak berfungsi untuk Anda, periksa apakah Anda menyertakan skrip JQuery sebelum skrip sudut ....sumber