Mustache では、 タグとタグを使用して値0
と非値を区別できます。0
{{#section}}
{{^inverted}}
<!-- If number_of_hits is not 0, show hits -->
{{#number_of_hits}}
{{number_of_hits}} hits
{{/number_of_hits}}
<!-- If number of hits is 0 (or any other falsy value) -->
{{^number_of_hits}}
No hits
{{/number_of_hits}}
私の知る限り、たとえば、Mustache は 1 と 2 の違いを検出できません。そのためにはview
、テンプレートに渡すオブジェクトを変更する必要があります。おそらく次のようなものです:
var hits = 3;
var view = {
search_term: 'something',
number_of_hits: hits,
hitkind: {
none: hits === 0,
one: hits === 1,
many: hits > 1
}
};
そしてテンプレに
{{#hitkind.none}} No hits {{/hitkind.none}}
{{#hitkind.one }} One hit {{/hitkind.one}}
{{#hitkind.many}} {{number_of_hits}} hits {{/hitkind.many}}
または、テンプレート エンジンをHandlebars.jsに変更することを検討してください。Handlebars は Mustache のスーパーセットです。つまり、すべての Mustache テンプレートが使用できます。ハンドルバー テンプレートは、Mustache のテンプレートと同様にロジックがないため、ロジックをテンプレートに直接書き込むことはできません。Helpers
代わりに、テンプレートから呼び出し可能な 、または関数の概念を提供します。
Handlebars を使用すると、次のようなヘルパーを定義できます。
Handlebars.registerHelper('hitCount', function(count) {
if(count === 0) return "No hits";
if(count === 1) return "One hit";
return count + " hits".
});
テンプレートから呼び出します。
{{hitCount number_of_hits}}