2013-03-04 107 views
0

有沒有在Jade中使用JavaScript生成屬性的方法?Jade中生成的屬性

的東西,像EJS,一個可以這樣做:

<div <?- bool ? 'attribute' : 'no attribute' ?>> 

中有玉沒有等價的,顯然。當然我可以這樣做:

option(selected=bool) 

而Jade會爲此屬性生成適當的HTML輸出。但據我所知,沒有辦法寫任何比這更復雜的東西。

問題不在於是否需要這個問題;沒有這個可能會得到。但是,在Jade中可能,我只是不知道?

回答

2

根據您的具體情況,您有幾個選項。

如果'no attribute'試圖排除attribute,您可以set it to null or undefined(不過,因爲你已經注意到,false也能正常工作):

div(attribute=condition ? 'value' : null) 

但是,如果你的目的是屬性交換,你可以做到這一點與embedded markupinterpolation

| <div #{bool ? 'attribute' : 'no-attribute'}> 

或者說,我相信你有分別互爲條件:

div(attribute=bool, no-attribute=!bool) 

還有一些關於指定物體屬性的建議,如#664,它提供了mixin s的可能替代方案。

+0

有趣。唯一的問題是它不是Jade。如果我想爲這個元素嵌套子元素,它是如何在Jade模板的縮進流中起作用的? – Sam 2013-03-04 08:31:45