ホームページ > ウェブフロントエンド > jsチュートリアル > Handlebars.js の {{#if}} 条件で「OR」のような論理演算子を使用できますか?

Handlebars.js の {{#if}} 条件で「OR」のような論理演算子を使用できますか?

Linda Hamilton
リリース: 2024-11-13 16:27:02
オリジナル
198 人が閲覧しました

Can I Use Logical Operators Like

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート