内联条件

时间:2011-12-19 16:10:17

标签: javascript node.js express pug

  - if (typeof(person) == 'undefined')
    input(type="text", name="person[Name]")
  - else
    input(type="text", name="person[Name]", value="#{person.Name}")

有没有办法写这个内联?我有一个选项选择,我不想为30+值做一个条件语句来选择正确的选项。

4 个答案:

答案 0 :(得分:6)

你可以使用mixins

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')
...

答案 1 :(得分:4)

条件语句应该

input(type='text', name='person[Name]', value= (person?(person.name?person.name:''):''))
然而,通过设计,我们总能通过一个人?这种方式不需要比较。代码就像是

input(type='text', name='person[Name]', value= person.name)

答案 2 :(得分:0)

您可以如下短路:

input(type="text", name="person[Name]", value="#{person && person.Name}")

答案 3 :(得分:-1)

如果值为undefinednull,则不会显示该属性。这应该有效:

input(type='text', name='person[Name]', value= person && typeof(person))