如何在Handlebars中提供默认替代方案

时间:2013-11-26 09:44:49

标签: handlebars.js

在完成两次文档后,我放弃了并在模板中写了这个:

{{#if myVar}}{{myVar}}{{else}}{{myDefaultVar}}{{/if}}

我是否遗漏了一些Handlebars内置功能,因为感觉它会出现很多! (我意识到我可以为它编写自己的帮助器,并且如果Handlebars没有内置任何东西,它会这样做。)

1 个答案:

答案 0 :(得分:0)

在发现Handlebars本身支持这个问题之前,这里是我写的帮手:

Handlebars.registerHelper("P", function(){
  for(var i=0;i<arguments.length;++i)if(arguments[i])return arguments[i];
});

所以长{{#if}}就变成了这个:

{{P myVar myDefaultVar}}

它允许多个默认值,使用先到先得的,所以我可能有这样的东西:

Welcome {{P user.nickname user.fullName "guest"}}!

如果用户提供了昵称,请使用该昵称,否则请使用其全名。如果他们两个都没有,请将他们称为&#34;客人&#34;。