有了鬍子有可能使用{{#section}}
和{{^inverted}}
標籤的價值0
和非0
值來區分:
<!-- 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}}
據我所知,鬍鬚無法檢測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's一樣無邏輯,所以它不會讓您直接將邏輯寫入模板。相反,它提供了Helpers
的概念,或可從您的模板中調用的函數。
隨着車把你可以定義一個幫手,如:
Handlebars.registerHelper('hitCount', function(count) {
if(count === 0) return "No hits";
if(count === 1) return "One hit";
return count + " hits".
});
而且從模板調用它:
{{hitCount number_of_hits}}
謝謝您的回答。我幾乎肯定鬍鬚不支持這種表現邏輯。感謝Handlebars的介紹。我一定會檢查出來。 –