1. ホーム
  2. javascript

[解決済み] handlebars.js {{#if}}の条件における論理演算子

2022-03-19 04:53:12

質問

handlebars JSで、標準のhandlebars.jsの条件演算子に論理演算子を取り入れる方法はありますか?このようなものです。

{{#if section1 || section2}}
.. content
{{/if}}

自分でヘルパーを書くこともできるのですが、まずは車輪の再発明になっていないか確認したいのです。

どのように解決するのですか?

これは、ブロックヘルパーで「ごまかす」ことで可能になります。これはおそらく、Handlebarsを開発した人々のイデオロギーに反しています。

Handlebars.registerHelper('ifCond', function(v1, v2, options) {
  if(v1 === v2) {
    return options.fn(this);
  }
  return options.inverse(this);
});

そして、次のようにテンプレート内でヘルパーを呼び出すことができます。

{{#ifCond v1 v2}}
    {{v1}} is equal to {{v2}}
{{else}}
    {{v1}} is not equal to {{v2}}
{{/ifCond}}