Passing parameter menggunakan onclick atau klik mengikat dengan KnockoutJS
Saya memiliki fungsi ini:
function make(place)
{
place.innerHTML = "somthing"
}
Aku digunakan untuk melakukan hal ini dengan polos JavaScript dan html:
<button onclick="make(this.parent)">click me</button>
Bagaimana saya bisa melakukan ini menggunakan idiomatik knockout.js?
51
5
Penggunaan yang mengikat, seperti dalam contoh ini:
Jika anda mengatur klik mengikat di Babak acara dilewatkan sebagai parameter kedua. Anda dapat menggunakan acara tersebut untuk memperoleh unsur yang terjadi dan melakukan tindakan apapun yang anda inginkan.
Berikut ini adalah biola yang menunjukkan: http://jsfiddle.net/jearles/xSKyR/
Alternatif lain, anda bisa membuat kustom anda sendiri yang mengikat, yang akan menerima unsur ini terikat sebagai parameter pertama. Di init anda bisa pasang anda sendiri klik event handler untuk melakukan setiap tindakan yang anda inginkan.
http://knockoutjs.com/documentation/custom-bindings.html
HTML
Js
Saya tahu ini adalah pertanyaan lama, tapi di sini adalah kontribusi saya. Bukannya semua trik ini, anda hanya bisa hanya membungkus sebuah fungsi dalam fungsi yang lain. Seperti yang telah saya lakukan di sini:
Dan berikut adalah [biola][1]
Generik jawaban tentang bagaimana untuk menangani
klik
peristiwa dengan KnockoutJS...Tidak langsung menjawab pertanyaan yang diajukan, tapi mungkin jawaban untuk pertanyaan yang paling Googlers mendarat di sini: gunakan
klik
mengikat dari KnockoutJS bukanonclick
. Seperti ini:*Catatan tentang aktual pertanyaan...
Pertanyaan yang sebenarnya memiliki salah satu yang menarik bit:
Don't melakukan itu! Don't memodifikasi DOM seperti itu ketika menggunakan MVVM framework seperti KnockoutJS, terutama bukan bagian dari DOM yang orangtua anda sendiri. Jika anda akan melakukan ini, tombol akan hilang (jika anda mengganti orang tua's
innerHTML
anda sendiri akan pergi untuk selamanya pernah!).Sebaliknya, mengubah Lihat Model anda bukan handler, dan memiliki View merespon. Misalnya:
Ko's dokumentasi juga menyebutkan banyak cara yang lebih bersih dari passing parameter tambahan untuk fungsi yang terikat menggunakan
di-klik
mengikat menggunakan fungsi.mengikat seperti ini: