次のコードをどのように変更して機能させますか? 問題は this == 'some message' 式です:
<ul>
{{#each errors}}
{{#if (this == 'some message') }}
<li>Status</li>
{{else}}
<li>{{this}}</li>
{{/if}}
{{/each}}
</ul>
次のコードをどのように変更して機能させますか? 問題は this == 'some message' 式です:
<ul>
{{#each errors}}
{{#if (this == 'some message') }}
<li>Status</li>
{{else}}
<li>{{this}}</li>
{{/if}}
{{/each}}
</ul>
最も簡単な方法は、カスタムif_eq
ヘルパーを追加することです。
Handlebars.registerHelper('if_eq', function(a, b, opts) {
if(a == b) // Or === depending on your needs
return opts.fn(this);
else
return opts.inverse(this);
});
次に、テンプレートを調整します。
{{#if_eq this "some message"}}
...
{{else}}
...
{{/if_eq}}
デモ: http://jsfiddle.net/ambiguous/d4adQ/
エントリが単純な文字列でない場合errors
は、「is this some message」フラグをそれらに追加して、標準を使用できます{{#if}}
(プロパティを文字列に直接追加してもうまくいかないことに注意してください)。
for(var i = 0; i < errors.length; ++i)
errors[i] = { msg: errors[i], is_status: errors[i] === 'some message' };
と:
{{#if is_status}}
<li>Status</li>
{{else}}
<li>{{msg}}</li>
{{/if}}
古い質問ですが、Elving のSwag Handlebars ヘルパー ライブラリを使用する場合は、ヘルパーis
とを使用できますisnt
。