2013-05-20 226 views
0

我有一個稱爲當前變量,它用於設置一個html輸入玉變量屬性名稱

所以currentchecked值可以是''(空白)或checked=true

由於你不能設定HTML屬性假,我不能這樣做:

input(checked="#{current}") 

所以,我需要這麼使用一個變量作爲整個屬性。 Jade有可能嗎?除了只寫入HTML字符串

編輯更清晰。我想這樣做:

someVar = "checked=true"  
input(somevVar) // <input checked="true"> 
+0

請看看我的編輯答案。這就是你如何做到的。 –

回答

1

jade supports boolean attributechecked直接通過以下語法:

input(type="checkbox", checked=current) 

從文檔:

布爾屬性也被支持:

輸入(類型= 「複選框」,選中)使用代碼的布爾屬性只有 輸出真當屬性:

輸入(類型=「複選框」,選中= someValue中)

確保您指定!doctype 5指令,以及在你的佈局模板。

下面是一個例子:

var jade = require('jade'); 

var templateFn = jade.compile('doctype 5\ninput(type="checkbox", checked=current)\n'); 
console.log(templateFn({current: true})); 
console.log(templateFn({current: false})); 

它輸出:

<!DOCTYPE html><input type="checkbox" checked> 
<!DOCTYPE html><input type="checkbox"> 
+0

是的,但我想用變量設置_entire thing_。 HTML是奇怪的,只有沒有屬性將它設置爲false,我不能簡單地設置someValue爲false – wesbos

+0

是的,我完全理解你的目標。正如我所描述的,我相信玉石支持這一點。你試過了嗎? –

+0

真棒,正是我想要的。玉的真正偉大的特點。謝謝! – wesbos

0

你能做到這樣:

input(type='checkbox', id='IsPublic', name='IsPublic', value= model.IsPublic) 

哪裏model.IsPublic是從節點的響應傳入的模型。

在模型看起來是與MongoDB的支持上面的例子:

IsPublic: { type: Boolean, default: false} 
在上述情況下

存在是指公共或不是你的將是「當前」的屬性。

注意:不要被「model」個人混淆,我將所有內容或核心屬性作爲名爲「model」的對象傳遞以保持一致性。在你的情況下,你可能會直接傳遞財產,所以不要被這部分弄糊塗,以澄清。

+0

我想_entire屬性_是一個變量。更新我的Q更清晰。 – wesbos

+0

@哇啊!很好的編輯,沒有抓住。我可以問爲什麼要更好地理解? – origin1tech

+0

' - if(something){current =「checked = true」;} else {current =「」}。' HTML不允許'checked = false',否則我會將該值設置爲false並隨着我的生活一起移動。它的檢查屬性全部不在一起,導致複選框不會被檢查_ – wesbos