假设我想在Handlebars输出中添加一个美元符号:
${{price}}
当价格实际评估为数字时,最终输出看起来不错:$100
但是,当价格尚未定义时,输出只是一个孤独的美元符号$
,看起来很奇怪,只是单独坐在页面上。
我可以定义Handlebars帮助器以包含美元符号:
Handlebars.registerHelper('priceWithDollarSign', function() {
return( "$" + totalPrice );
});
但是我需要定义第二个帮助器来显示它而没有美元符号:
Handlebars.registerHelper('priceWithoutDollarSign', function() {
return totalPrice;
});
是否可以在Handlebars表达式中自行完成?
{{"$" + price}}
当我想要美元符号时。
{{price}}
因为我不想要美元符号。
通过这种方式,当price
未定义时,输出只是空白,并且在页面上看起来并不奇怪。
答案 0 :(得分:0)
我想出了如何为这个美元符号案例做这件事。我想我可以将其推断到其他类似的情况。
Handlebars.registerHelper("formatToCurrency", function(number, plain) {
if (number && plain) {
return number; //return the plain number
} else if (number && plain == null ) {
return ("$" + number); //return the number with $ sign
} else {
return null; //return nothing
}
});
如果我这样做
{{formatToCurrency price null}}
我得到100
如果我这样做
{{formatToCurrency price}}
我得到$100
如果未定义price
,则它只是空白。