在JADE中完成if-else条件块

时间:2015-03-20 11:47:19

标签: javascript html node.js pug template-engine

我想在Jade中完成if else条件块,所以在if / else之后可以添加嵌套代码。

- var name = 'you';
- if(name != '')
    p Hello #{name}
- else
    p Hello world
| !!!

我想得到一个空名称var

<p>Hello you!!!</p>

但是我得到了

<p>Hello world</p>
!!!

name = you我希望得到

<p>Hello world!!!</p>

我必须更改以在p元素中添加更多文本/标签?我的意思是嵌套到if / else块并且两种情况都是通用的。关键是不要在代码!!!

中重复

与try / catch类似的finally块会很好,但它不存在。

2 个答案:

答案 0 :(得分:3)

大括号在内联代码中工作

- var name = 'you';
- if(name != '') {
    p Hello #{name}
- } else {
    p Hello world
- }
| !!!


  

如何将标签放入p?好强!!!有了你的解决方案,感叹就是p元素的兄弟,没有孩子,如果我列出强标签就没有问题

只需将p标记移到if-else块之外,然后使用|

div
    - var name = 'you';
    p
        - if(name != '') {
            | Hello #{name}
        - } else {
            | Hello world
        - }
            strong !!!

答案 1 :(得分:1)

您只需将!!!部分添加到原始文字内容中即可:

if(name != '')
   p Hello #{name}
else
   p Hello world!!!

| !!!位于else块之外,并将textNode添加到父标记。

要将标记添加到p标记,您可以嵌套它:

if(name != '')
   p Hello #{name}
else
   p 
      b Hello world
      | !!! 

编辑:为了不重复自己,你也可以编码:

- name = name || 'world';
p 
  | Hello #{name}
  | !!!
  b ...

或者:

p 
  = "Hello " + ( name || "world" )
  | !!!