Rumah hujung hadapan web tutorial js Bagaimana Control Flow Bindings berfungsi dalam KnockoutJs

Bagaimana Control Flow Bindings berfungsi dalam KnockoutJs

Nov 24, 2024 am 09:23 AM

Como funcionam Bindings de Fluxo de Controle no KnockoutJs

Kandungan ini pada asasnya adalah terjemahan bahan asal. Hasratnya adalah untuk mengetahui tentang KnockoutJs untuk Magento 2 dan mencipta kandungan dalam bahasa Portugis tentang KnockouJs.

Dokumentasi

  • Sintaks pengikat data
  • Konteks mengikat
  • Ikatan "foreach"
  • Ikatan "jika" dan "jika tidak"
  • Ikatan "dengan" dan "menggunakan"
  • Ikatan "biar"

Pengikatan

Dalam KnockoutJs, binding ialah cara untuk menyambung logik ViewModel (data dan logik perniagaan) dengan View (HTML). Ringkasnya, melalui binding antara muka pengguna secara automatik mencerminkan perubahan dalam data anda, tanpa perlu memanipulasi DOM secara langsung.

Pengikatan dalam KnockoutJs berfungsi melalui atribut data-bind pada elemen HTML. Atribut ini ialah tempat anda menentukan pengikatan yang anda mahu gunakan dan nilai yang berkaitan.

Aliran Kawalan

foreach

Foreach mengikat digunakan untuk membuat ulangan dalam elemen HTML, menjana salinan elemen yang sama untuk setiap item dalam koleksi (seperti tatasusunan atau tatasusunan boleh diperhatikan ) dalam model paparan anda. Ini membolehkan anda membuat senarai atau jadual pangsi dengan mudah yang memaparkan data daripada model anda.

Apabila kandungan model array diubah suai (dengan menambah, mengalihkan atau memadamkan entrinya), mengikat daripada foreach menggunakan algoritma yang cekap untuk mencari apa yang berubah, jadi anda boleh mengemas kini DOM mengikut tatasusunan. Ini bermakna ia boleh mengendalikan gabungan arbitrari perubahan simulasi.

  • Apabila sesuatu ditambahkan pada tatasusunan, foreach akan memaparkan salinan baharu model anda dan memasukkannya ke dalam DOM sedia ada;
  • Apabila sesuatu dalam tatasusunan dipadamkan, foreach hanya akan mengalih keluar elemen DOM yang sepadan;
  • Apabila menyusun semula sesuatu dalam tatasusunan (mengekalkan contoh objek yang sama), foreach biasanya hanya akan mengalihkan elemen DOM yang sepadan ke kedudukan baharunya.
<div>
  <ul data-bind="foreach: items">
    <li data-bind="text: $data"></li>
  </ul>

  <ul data-bind="foreach: getItems()">
    <li>
        <span data-bind="text: name"></span> - <span data-bind="text: age"></span>
    </li>
  </ul>

  <ul data-bind="foreach: { data: people, as: 'person' }"></ul>
</div>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Dalam kes ini, pembolehubah $data merujuk item semasa yang sedang diproses dalam gelung. Ini membolehkan anda mengakses sifat atau nilai item itu dalam gelung.

Arahan sebagai membolehkan anda mentakrifkan nama tersuai untuk pembolehubah yang mewakili item semasa dalam kitaran lelaran setiap. Ini boleh menjadikan kod lebih mudah dibaca dan bermakna.

Kadangkala item dalam array perlu tidak dipadamkan, sebaliknya disembunyikan, tanpa benar-benar kehilangan jejak kewujudannya. Ini dikenali sebagai pemadaman tidak merosakkan. Jika anda perlu menyembunyikan entri yang dimusnahkan, tetapkan pilihan includeDestroyed kepada palsu.

<div>
  <ul data-bind="foreach: items">
    <li data-bind="text: $data"></li>
  </ul>

  <ul data-bind="foreach: getItems()">
    <li>
        <span data-bind="text: name"></span> - <span data-bind="text: age"></span>
    </li>
  </ul>

  <ul data-bind="foreach: { data: people, as: 'person' }"></ul>
</div>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Jika anda perlu melakukan logik tersuai tambahan pada elemen DOM yang dijana, anda boleh menggunakan mana-mana panggilan balik berikut:

  • afterRender: digunakan setiap kali blok foreach diduplikasi dan dimasukkan ke dalam dokumen, kedua-duanya apabila foreach dimulakan buat kali pertama dan apabila entri baharu kemudiannya ditambahkan pada array;
  • yang berkaitan
  • afterAdd: adalah seperti afterRender, kecuali ia digunakan hanya apabila entri baharu ditambahkan pada array (dan bukan apabila foreach mula-mula melelang ke atas kandungan awal array);
  • beforeRemove: digunakan apabila item daripada array dialih keluar, tetapi sebelum nod DOM yang sepadan dialih keluar. Jika panggilan balik beforeRemove ditentukan, anda perlu mengalih keluar nod DOM secara manual, iaitu KnockoutJs tidak dapat mengetahui bila ia akan dibenarkan untuk mengalih keluar nod DOM secara fizikal;
  • beforeMove: digunakan apabila item daripada array telah menukar kedudukan dalam array, tetapi sebelum nod DOM yang sepadan telah dialihkan. Ambil perhatian bahawa beforeMove digunakan pada semua elemen tatasusunan yang indeksnya telah berubah, jadi jika item baharu dimasukkan pada permulaan tatasusunan, panggilan balik (jika dinyatakan) akan dicetuskan untuk semua elemen lain, sebagai indeksnya kedudukan telah meningkat satu. Anda boleh menggunakan beforeMove untuk menyimpan koordinat skrin asal bagi elemen yang terjejas supaya anda boleh menghidupkan pergerakannya dalam panggilan balik afterMove;
  • afterMove: digunakan selepas item daripada array telah menukar kedudukan dalam array dan selepas foreach telah mengemas kini DOM untuk dipadankan. Ambil perhatian bahawa afterMove digunakan pada semua elemen array yang indeksnya telah berubah, jadi jika item baharu dimasukkan pada permulaan array, panggilan balik (jika dinyatakan) akan dicetuskan untuk semua elemen lain sejak kedudukan indeks mereka telah meningkat sebanyak satu.

jika dan jika tidak

pengikatan if menyebabkan bahagian penanda muncul dalam dokumen anda (dan atribut pengikatan datanya digunakan), hanya jika ungkapan tertentu dinilai kepada benar (atau nilai benar , seperti objek bukan nol atau rentetan bukan kosong).

ifnot's binding berfungsi sama seperti if binding, kecuali ia menyongsangkan hasil daripada sebarang ungkapan yang dihantar kepadanya.

jika dan jika tidak memainkan peranan yang serupa dengan pengikatan yang boleh dilihat dan tersembunyi. Perbezaannya ialah, dengan penanda yang boleh dilihat, sentiasa kekal dalam DOM dan sentiasa menggunakan pengikatan datanya – pengikatan boleh dilihat hanya menggunakan CSS untuk menogol keterlihatan elemen yang mengandungi. Walau bagaimanapun, pautan if menambahkan atau mengalih keluar penanda yang terkandung dalam DOM anda secara fizikal dan hanya menggunakan pautan kepada keturunan jika ungkapan itu benar. Jika ungkapan itu melibatkan beberapa nilai yang boleh diperhatikan, ungkapan itu akan dinilai semula apabila nilainya berubah.

<div>
  <ul data-bind="foreach: items">
    <li data-bind="text: $data"></li>
  </ul>

  <ul data-bind="foreach: getItems()">
    <li>
        <span data-bind="text: name"></span> - <span data-bind="text: age"></span>
    </li>
  </ul>

  <ul data-bind="foreach: { data: people, as: 'person' }"></ul>
</div>
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

dengan dan menggunakan

Ikatan dengan dan menggunakan mencipta konteks mengikat baharu, supaya unsur turunan diikat dalam konteks objek tertentu.

mengikat dengan akan menambah atau mengalih keluar elemen turunan secara dinamik bergantung pada sama ada nilai yang berkaitan adalah palsu.

Pilihan membolehkan anda mentakrifkan alias untuk objek konteks baharu. Walaupun boleh merujuk kepada objek menggunakan $data.
pembolehubah konteks

<div data-bind='foreach: { data: myArray, includeDestroyed: false }'>
    ...
</div>
Salin selepas log masuk

Pengikatan menggunakan telah diperkenalkan dalam KnockoutJs 3.5 sebagai pengganti dengan apabila pemaparan unsur keturunan tidak diingini. Oleh kerana menggunakan menilai semula sambungan keturunan dan bukannya menyampaikan semula, setiap sambungan keturunan akan menyertakan pergantungan tambahan pada konteks penggunaan.

biarkan

Biar mengikat membolehkan anda menentukan sifat konteks mengikat tersuai yang boleh anda rujuk dalam pengikatan semua unsur keturunan.

<div data-bind="if: exibirMensagem">
    <p>Esta mensagem será exibida se 'exibirMensagem' for verdadeiro.</p>
</div>

<div data-bind="ifnot: exibirMensagem">
    <p>Esta mensagem será exibida se 'exibirMensagem' for falso.</p>
</div>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana Control Flow Bindings berfungsi dalam KnockoutJs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1671
14
Tutorial PHP
1276
29
Tutorial C#
1256
24
Python vs JavaScript: Keluk Pembelajaran dan Kemudahan Penggunaan Python vs JavaScript: Keluk Pembelajaran dan Kemudahan Penggunaan Apr 16, 2025 am 12:12 AM

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Dari C/C ke JavaScript: Bagaimana semuanya berfungsi Dari C/C ke JavaScript: Bagaimana semuanya berfungsi Apr 14, 2025 am 12:05 AM

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

JavaScript dan Web: Fungsi teras dan kes penggunaan JavaScript dan Web: Fungsi teras dan kes penggunaan Apr 18, 2025 am 12:19 AM

Penggunaan utama JavaScript dalam pembangunan web termasuk interaksi klien, pengesahan bentuk dan komunikasi tak segerak. 1) kemas kini kandungan dinamik dan interaksi pengguna melalui operasi DOM; 2) pengesahan pelanggan dijalankan sebelum pengguna mengemukakan data untuk meningkatkan pengalaman pengguna; 3) Komunikasi yang tidak bersesuaian dengan pelayan dicapai melalui teknologi Ajax.

JavaScript in Action: Contoh dan projek dunia nyata JavaScript in Action: Contoh dan projek dunia nyata Apr 19, 2025 am 12:13 AM

Aplikasi JavaScript di dunia nyata termasuk pembangunan depan dan back-end. 1) Memaparkan aplikasi front-end dengan membina aplikasi senarai TODO, yang melibatkan operasi DOM dan pemprosesan acara. 2) Membina Restfulapi melalui Node.js dan menyatakan untuk menunjukkan aplikasi back-end.

Memahami Enjin JavaScript: Butiran Pelaksanaan Memahami Enjin JavaScript: Butiran Pelaksanaan Apr 17, 2025 am 12:05 AM

Memahami bagaimana enjin JavaScript berfungsi secara dalaman adalah penting kepada pemaju kerana ia membantu menulis kod yang lebih cekap dan memahami kesesakan prestasi dan strategi pengoptimuman. 1) aliran kerja enjin termasuk tiga peringkat: parsing, penyusun dan pelaksanaan; 2) Semasa proses pelaksanaan, enjin akan melakukan pengoptimuman dinamik, seperti cache dalam talian dan kelas tersembunyi; 3) Amalan terbaik termasuk mengelakkan pembolehubah global, mengoptimumkan gelung, menggunakan const dan membiarkan, dan mengelakkan penggunaan penutupan yang berlebihan.

Python vs JavaScript: Komuniti, Perpustakaan, dan Sumber Python vs JavaScript: Komuniti, Perpustakaan, dan Sumber Apr 15, 2025 am 12:16 AM

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Python vs JavaScript: Persekitaran dan Alat Pembangunan Python vs JavaScript: Persekitaran dan Alat Pembangunan Apr 26, 2025 am 12:09 AM

Kedua -dua pilihan Python dan JavaScript dalam persekitaran pembangunan adalah penting. 1) Persekitaran pembangunan Python termasuk Pycharm, Jupyternotebook dan Anaconda, yang sesuai untuk sains data dan prototaip cepat. 2) Persekitaran pembangunan JavaScript termasuk node.js, vscode dan webpack, yang sesuai untuk pembangunan front-end dan back-end. Memilih alat yang betul mengikut keperluan projek dapat meningkatkan kecekapan pembangunan dan kadar kejayaan projek.

Peranan C/C dalam JavaScript Jurubah dan Penyusun Peranan C/C dalam JavaScript Jurubah dan Penyusun Apr 20, 2025 am 12:01 AM

C dan C memainkan peranan penting dalam enjin JavaScript, terutamanya digunakan untuk melaksanakan jurubahasa dan penyusun JIT. 1) C digunakan untuk menghuraikan kod sumber JavaScript dan menghasilkan pokok sintaks abstrak. 2) C bertanggungjawab untuk menjana dan melaksanakan bytecode. 3) C melaksanakan pengkompil JIT, mengoptimumkan dan menyusun kod hot-spot semasa runtime, dan dengan ketara meningkatkan kecekapan pelaksanaan JavaScript.

See all articles