在 JADE 中完成 if-else 条件块

Finish if-else conditional block in JADE

我想在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 元素中放置更多 text/tags?我的意思是嵌套到 if/else 块并且对于这两种情况都是通用的。重点是不要在代码中重复 !!!

像 try/catch 这样的 finally 块会很好,但它不存在。

您可以直接在原文内容中添加!!!部分:

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" )
  | !!!

大括号在内联代码中起作用

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


how you do to put a tag inside both p? eg strong !!!. With your solution, exclamations are brothers of p elements, no of children, no matters if I tabulate strong tag

只需将 p 标记移到 if-else 块之外,并在此处使用 |

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