handlebars.js中是否有三元运算符?

sha*_*iao 19 javascript templates handlebars.js

在Handlebars中,是否有三元运算符?我不是说if else; 我的意思是a == true ? "a" : "b".

小智 12

if助手可以通过传递三个参数把它作为一个三元运算符.

在以下示例中,按钮的默认值为"Save Changes",但如果model.isSaving为true,则该值临时更改为Saving....

<button>{{if model.isSaving "Saving..." "Save Changes"}}</button>
Run Code Online (Sandbox Code Playgroud)

...或者,在另一个帮手中使用:

{{input type="submit" value=(if model.isSaving "Saving..." "Save Changes")}}
Run Code Online (Sandbox Code Playgroud)

  • 对我不起作用。不得不诉诸`{{#if model.isSaving}}“正在保存...”{{else}}“保存更改”{{/if}}` (3认同)
  • @majman我添加了一个代码示例来演示我认为最好的答案. (2认同)

dig*_*ire 10

如果你真的想要,可以在handlbars中构建自己的助手.有点像ternary(a==true, "a", "b").有关详细信息,请参阅文档.来自m90的想法不是车把背后的想法.我们的想法是在模板中没有显式代码,只调用帮助程序和对象.


gum*_*ins 5

这对我有用

{{#if final}} "Final" {{^}} "Interim" {{/if}}
Run Code Online (Sandbox Code Playgroud)