Javascript 车把要短些吗?

Javascript 车把要短些吗?,javascript,handlebars.js,Javascript,Handlebars.js,我正在写一个车把模板 有没有一种更简短的方式来写这个: <input type="text" id="date-from" value="{{#if dates.start}}{{dates.start}}{{else}}From{{/if}}" name="date-from"/> 如果存在dates.start值,我想填充value属性,否则使用默认值 谢谢没有,但您可以使用助手: Handlebars.registerHelper('shortIf', function(

我正在写一个车把模板

有没有一种更简短的方式来写这个:

<input type="text" id="date-from" value="{{#if dates.start}}{{dates.start}}{{else}}From{{/if}}" name="date-from"/>

如果存在
dates.start
值,我想填充
value
属性,否则使用默认值


谢谢

没有,但您可以使用助手:

Handlebars.registerHelper('shortIf', function(value) {
    if(value) {
        return value;
    }
    return "From";
});
那么你这样称呼它:

<input type="text" id="date-from" value="{{#shortIf dates.start}}" name="date-from"/>

与Pablo的答案类似,但更通用的助手:

Handlebars.registerHelper('iif', function(value, defaultValue) {
    return value || defaultValue;
});
然后,使用以下模板:

<input type="text" id="date-from" value="{{#iif dates.start 'From'}}{{/iif}}" name="date-from"/>

例如: