- if (typeof(person) == 'undefined')
input(type="text", name="person[Name]")
- else
input(type="text", name="person[Name]", value="#{person.Name}")
有没有什么办法可以写这个内联?我有一个选项选择,我不想为30+个值做一个条件语句来选择正确的选项。Jade内联条件
谢谢!
- if (typeof(person) == 'undefined')
input(type="text", name="person[Name]")
- else
input(type="text", name="person[Name]", value="#{person.Name}")
有没有什么办法可以写这个内联?我有一个选项选择,我不想为30+个值做一个条件语句来选择正确的选项。Jade内联条件
谢谢!
条件语句应该做
input(type='text', name='person[Name]', value= (person?(person.name?person.name:''):''))
然而,通过设计,我们总是可以传递人?这种方式不需要进行比较。代码会像
input(type='text', name='person[Name]', value= person.name)
当值为undefined
或null
时,该属性将不会显示。这应该工作:
input(type='text', name='person[Name]', value= person && typeof(person))
不幸的是,如果没有定义人,Jade会显示一个500 ReferenceError。如果定义了人员,则表示“字符串”而不是输入框中的值。所以这是行不通的。 – Patrick 2011-12-20 08:40:28
你可以使用混入
mixin safeInput(person, property)
- if (typeof(person) == 'undefined')
input(type="text", name="person[#{property}]")
- else
input(type="text", name="person[#{property}]", value="#{person[property]}")
然后
mixin safeInput(person, 'Name')
mixin safeInput(person, 'Email')
...
嗯,不错。我必须看看它是否适用于选项选择。谢谢! – Patrick 2011-12-20 18:37:37
这当然是辉煌的。传递空对象以防止“未定义”错误,不需要混合或条件。我使用JavaScript来选择列表中的选项,因为条件语句不起作用。 – Patrick 2011-12-21 13:33:16