Menggunakan Operator Logik dalam Handlebars.js {{#if}} Conditionals
Handlebars.js menyediakan {{#if}} yang berkuasa pengendali bersyarat untuk memberikan kandungan secara bersyarat berdasarkan ungkapan yang diberikan. Walau bagaimanapun, pengendali standard hanya menyokong syarat kebenaran/palsu yang mudah. Ini mengehadkan keupayaannya untuk menyatakan perhubungan logik yang lebih kompleks.
Masalah:
Adakah mungkin untuk memasukkan pengendali logik, seperti OR (||), ke dalam bar hendal .js {{#if}} bersyarat operator?
Jawapan:
Walaupun handlebars.js tidak menyokong operator logik secara asli dalam operator bersyaratnya, adalah mungkin untuk mencapai fungsi ini dengan menggunakan pembantu blok. Pembantu blok ialah fungsi tersuai yang boleh didaftarkan dengan bar hendal untuk melanjutkan fungsinya.
Begini cara anda boleh mendaftarkan pembantu blok bernama 'ifCond' untuk mengendalikan keadaan logik:
Handlebars.registerHelper('ifCond', function(v1, v2, options) { if(v1 === v2) { return options.fn(this); } return options.inverse(this); });
Pembantu ini menyemak sama ada dua nilai, v1 dan v2, adalah sama. Jika ya, ia mengembalikan kandungan blok 'benar' (options.fn). Jika tidak, ia mengembalikan kandungan blok 'false' (options.inverse).
Untuk menggunakan pembantu ini dalam templat anda, hanya panggilnya dengan nilai yang ingin anda bandingkan:
{{#ifCond v1 v2}} {{v1}} is equal to {{v2}} {{else}} {{v1}} is not equal to {{v2}} {{/ifCond}}
Ini akan mengeluarkan satu daripada dua blok berdasarkan sama ada v1 dan v2 adalah sama atau tidak.
Semasa menggunakan pembantu blok untuk mencapai fungsi ini mungkin tidak sejajar dengan falsafah Handlebars, ia menyediakan cara untuk melanjutkan keupayaannya dan mengendalikan perhubungan logik yang kompleks dalam templat anda.
Atas ialah kandungan terperinci Bolehkah saya Menggunakan Operator Logik Seperti 'OR' dalam Handlebars.js {{#if}} Conditionals?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!