内联条件

Pat*_*ick 6 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}")
Run Code Online (Sandbox Code Playgroud)

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

Rom*_*sse 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]}")
Run Code Online (Sandbox Code Playgroud)

然后

mixin safeInput(person, 'Name')
mixin safeInput(person, 'Email')
...
Run Code Online (Sandbox Code Playgroud)


小智 4

条件语句应该做

input(type='text', name='person[Name]', value= (person?(person.name?person.name:''):''))
Run Code Online (Sandbox Code Playgroud)

然而,按照设计我们总能超越一个人吗?这样就不需要进行比较。代码会是这样的

input(type='text', name='person[Name]', value= person.name)
Run Code Online (Sandbox Code Playgroud)