Handlebars.js での論理演算子の使用 {{#if}} 条件文
Handlebars.js は強力な {{#if}} を提供します条件演算子は、指定された式に基づいてコンテンツを条件付きでレンダリングします。ただし、標準演算子は単純な真/偽条件のみをサポートします。これにより、より複雑な論理関係を表現する能力が制限されます。
問題:
OR (||) などの論理演算子をハンドルバーに組み込むことは可能ですか? .js {{#if}} 条件演算子?
答え:
handlebars.js は条件演算子で論理演算子をネイティブにサポートしていませんが、次のことは可能です。この機能は、ブロック ヘルパーを利用して実現します。ブロック ヘルパーは、ハンドルバーに登録して機能を拡張できるカスタム関数です。
論理条件を処理するために 'ifCond' という名前のブロック ヘルパーを登録する方法は次のとおりです:
Handlebars.registerHelper('ifCond', function(v1, v2, options) { if(v1 === v2) { return options.fn(this); } return options.inverse(this); });
このヘルパー2 つの値 v1 と v2 が等しいかどうかをチェックします。そうであれば、「true」ブロック (options.fn) の内容を返します。それ以外の場合は、「false」ブロック (options.inverse) の内容を返します。
テンプレートでこのヘルパーを使用するには、比較したい値を指定して呼び出すだけです:
{{#ifCond v1 v2}} {{v1}} is equal to {{v2}} {{else}} {{v1}} is not equal to {{v2}} {{/ifCond}}
これは、v1 と v2 が等しいかどうかに基づいて 2 つのブロックの 1 つを出力します。
この機能を実現するためにブロック ヘルパーを使用することは、Handlebars の理念と一致しない可能性がありますが、拡張する方法を提供します。その機能を利用して、テンプレート内の複雑な論理関係を処理します。
以上がHandlebars.js の {{#if}} 条件で「OR」のような論理演算子を使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。