2013-02-07 29 views
15

Tôi đang gửi ngày tới tệp .jade từ tệp .js của tôi bằng cách sử dụng Node.js. Khi trường #{date}false, nó sẽ thực hiện lệnh khác và in man làm câu trả lời. Điều gì có thể xảy ra?Jade/Pug nếu sử dụng điều kiện khác

if #{date} == false 
    | #{date} 
else 
    | man 

Trả lời

27

Nếu ngày là sai, bạn có muốn ra chuỗi 'người đàn ông'? Nếu có, bạn nếu và else là một cách sai lầm xung quanh ...

Làm thế nào về:

if date 
    = date 
else 
    | man 

hoặc thậm chí:

| #{date ? date : 'man'} 

hoặc đơn giản là:

| #{date || 'man'} 
8

Trong nếu biểu hiện bạn viết tên biến đơn giản, không có # {...}

if date == false 
    | #{date} 
else 
    | man 
0

Tuyên bố của bạn đã bị ngược lại. Đối với cú pháp, Bạn có thể sử dụng kiểu này để làm việc:

p Date: 
    if date 
    | date 
    else 
    | man 

Chính xác là bạn không cần #{} trong biểu thức. Tôi không thể nhận được = để hoạt động hoặc các cách khác trên các câu trả lời khác.

ternary Phong cách

Đối với bản thân mình, tôi cũng đang tìm kiếm các nhà điều hành ternary để làm điều này trên một dòng. Tôi đẽo nó xuống này:

p Date: #{(date ? date : "man")} 

Ngoài ra, bạn có thể sử dụng một var, có thêm một dây chuyền hơn, nhưng vẫn là ít dòng hơn OP:

- var myDate = (date ? date : "man") 
p Date: #{myDate} 

tôi đã không thể có được sau đây để làm việc, như được đề xuất trong câu trả lời khác.

| #{date ? date : 'man'} 
Các vấn đề liên quan