2016-05-14 45 views
2

我有一个表单用于更新用户数据,用于存储数据库时使用现有字段值填充每个输入。但是,对于新用户,某些值尚未提交到数据库,因此我希望输入框为空。玉变量插值 - 默认值,如果一个属性是不确定的?

为了显示用户数据,我使用Jade的插值功能来查看通过routes.js文件传入的#{user.local}对象。

它看起来像这样(片段):

input(type="text", name="firstname", value="#{user.local.firstName}") 

这种运作良好,当被定义的属性,但它(正确地)插入undefined如在该属性尚未定义的输入文本。

有没有办法让我设置变量默认为某些东西,如果它没有被设置?

喜欢的东西:

input(type="text", value="#{user.local.firstName || 'Default Text'"}) 
+0

你已经找到了一个解决方案?我目前有完全相同的问题并正在寻找解决方案。 – Stefan

+0

本身不是翡翠。我想我只需要添加一些逻辑到我的控制器,这样,当它检索数据时,它会用任何空字符串或其他来替换undefined。然后,这些数据将通过路由器传递给视图。 – armadadrive

+1

使用jade〜1.9.2,''input(type ='text'class ='form-control'id ='line6Name'name ='param6'value ='#{device.param6 ||“”}') '''当我这样做时,默认为未定义值的空字符串。如果你在最后双引号的位置转移,我愿意成为你在那里的代码。 –

回答

2

使用玉〜1.9.2,我的形式我写试图

input(type='text' class='form-control' id='line6Name' name='param6' value='#{device.param6||""}') 

。它为未定义的值提供了一个空字符串的缺省值。

我愿意赌你在那里的代码将工作,如果你移动最后双引号的地方。

来源:

input(type="text", value="#{user.local.firstName || 'Default Text'"}) 

要:

input(type="text", value="#{user.local.firstName || 'Default Text'}") 
+0

这工作就像一个魅力。原来你是对的 - 我的花括号应该在最后一个引号前结束。 – armadadrive