Saya menggunakan Handlebars.js untuk rendering tampilan sisi klien. If Else berfungsi dengan baik tetapi saya telah menemukan persyaratan 3 cara yang membutuhkan ELSE IF:
Ini tidak berfungsi:
{{#if FriendStatus.IsFriend }}
<div class="ui-state-default ui-corner-all" title=".ui-icon-mail-closed"><span class="ui-icon ui-icon-mail-closed"></span></div>
{{else if FriendStatus.FriendRequested}}
<div class="ui-state-default ui-corner-all" title=".ui-icon-check"><span class="ui-icon ui-icon-check"></span></div>
{{else}}
<div class="ui-state-default ui-corner-all" title=".ui-icon-plusthick"><span class="ui-icon ui-icon-plusthick"></span></div>
{{/if}}
Bagaimana saya melakukan ELSE IF dengan setang?
handlebars.js
reach4thelasers
sumber
sumber
Jawaban:
Setang mendukung
{{else if}}
blok pada 3.0.0.Setang v3.0.0 atau lebih tinggi:
Namun, sebelum Handlebars v3.0.0, Anda harus menentukan pembantu yang menangani logika percabangan atau
if
pernyataan sarang secara manual:sumber
else if
Saya biasanya menggunakan formulir ini:
sumber
{{/if}}{{/if}}{{/if}}{{/if}}{{/if}}
Setang sekarang mendukung
{{else if}}
pada 3.0.0. Karena itu, kode Anda sekarang harus berfungsi.Anda dapat melihat contoh di bawah "conditional" (sedikit direvisi di sini dengan menambahkan
{{else}}
:http://handlebarsjs.com/block_helpers.html
sumber
{{else if}}
sintaks.Semangat setang adalah bahwa ia "tidak logis". Kadang-kadang ini membuat kita merasa seperti sedang berjuang dengan itu, dan kadang-kadang kita berakhir dengan logika jelek jika / selain itu. Anda bisa menulis pembantu; banyak orang menambah setang dengan operator bersyarat "lebih baik" atau percaya bahwa itu harus menjadi bagian dari inti . Saya pikir, bahwa alih-alih ini,
Anda mungkin ingin mengatur hal-hal dalam model Anda sehingga Anda dapat memiliki ini,
Pastikan hanya satu dari bendera ini yang benar. Kemungkinannya adalah, jika Anda menggunakan ini
if/elsif/else
dalam tampilan Anda, Anda mungkin menggunakannya di tempat lain juga, jadi variabel-variabel ini mungkin tidak menjadi berlebihan.Jaga agar tetap ramping.
sumber
Saya menulis pembantu sederhana ini:
Ini seperti pola Rantai Tanggung Jawab dalam Setang
Contoh:
Ini bukan yang lain jika tetapi dalam beberapa kasus dapat membantu Anda)
sumber
Pembantu Bawaan
Anda bisa menggunakan penolong if untuk membuat blok secara kondisional. Jika argumennya menghasilkan false, undefined, null, "", 0, atau [], Setang tidak akan merender blokir.
templat
Saat Anda memasukkan input berikut ke templat di atas
sumber
Halo Saya hanya memiliki edit nama kelas MINOR, dan sejauh ini beginilah cara saya mengungkapkannya. saya pikir saya harus memberikan parameter multpile ke helper,
server.js
header.handlebars
sumber