- if (typeof(person) == 'undefined')
input(type="text", name="person[Name]")
- else
input(type="text", name="person[Name]", value="#{person.Name}")
有沒有什麼辦法可以寫這個內聯?我有一個選項選擇,我不想爲30+個值做一個條件語句來選擇正確的選項。Jade內聯條件
謝謝!
- if (typeof(person) == 'undefined')
input(type="text", name="person[Name]")
- else
input(type="text", name="person[Name]", value="#{person.Name}")
有沒有什麼辦法可以寫這個內聯?我有一個選項選擇,我不想爲30+個值做一個條件語句來選擇正確的選項。Jade內聯條件
謝謝!
條件語句應該做
input(type='text', name='person[Name]', value= (person?(person.name?person.name:''):''))
然而,通過設計,我們總是可以傳遞人?這種方式不需要進行比較。代碼會像
input(type='text', name='person[Name]', value= person.name)
當值爲undefined
或null
時,該屬性將不會顯示。這應該工作:
input(type='text', name='person[Name]', value= person && typeof(person))
不幸的是,如果沒有定義人,Jade會顯示一個500 ReferenceError。如果定義了人員,則表示「字符串」而不是輸入框中的值。所以這是行不通的。 – Patrick 2011-12-20 08:40:28
你可以使用混入
mixin safeInput(person, property)
- if (typeof(person) == 'undefined')
input(type="text", name="person[#{property}]")
- else
input(type="text", name="person[#{property}]", value="#{person[property]}")
然後
mixin safeInput(person, 'Name')
mixin safeInput(person, 'Email')
...
嗯,不錯。我必須看看它是否適用於選項選擇。謝謝! – Patrick 2011-12-20 18:37:37
這當然是輝煌的。傳遞空對象以防止「未定義」錯誤,不需要混合或條件。我使用JavaScript來選擇列表中的選項,因爲條件語句不起作用。 – Patrick 2011-12-21 13:33:16