2012-06-02 63 views
7

我希望能夠傳遞一個對象,其中包含表示元素屬性的鍵/值對。 Jade有可能嗎?擴展一個對象來設置Jade中的屬性

任何允許將屬性集合傳遞到我的模板中的解決方案就足夠了,但將顯式聲明的屬性與從對象中提取的屬性(如下所示)混合的能力將是理想的。

下面的語法不起作用,它只是我想要做的一個例子。

例如,如果我通過這樣的:

{ 
    name:'username', 
    value:'bob', 
    attributes: { 
     maxlength: 16 
    } 
} 

爲了這個模板:

input(name=name, value=value, attributes) 

所需的輸出將是:

<input name="username" value="bob" maxlength="16" /> 

回答

5

既然你是this issue在GitHub上的一部分,你可能已經知道了答案。但是,對於其他人,這裏就是答案:

玉:

input.foo(name=name value=value)&attributes(attrs) 

通過這個數據來渲染功能:

{ 
    name: 'username', 
    value: 'bob', 
    attrs: { 
     maxlength: 16 
    } 
} 

輸出:

<input name="username" value="bob" class="foo" maxlength="16"/> 
+2

我很欣賞這個迴應。這已經有一段時間了,我真的忘了它在這裏。正如github問題所述:**&屬性不會轉義輸出,所以請謹慎使用** – Prestaul

+0

需要了解。我沒有明白。 – Jonathan

0

你需要傳遞一個對象名稱或使用關鍵字'全球'是這樣的:

partial('myview', { { 
    name:'username', 
    value:'bob', 
    attributes: { 
     maxlength: 16 
    } 
}, as: global }); 

否則,您需要給您的對象一個名稱並通過該範圍訪問它們。

Check out the docs

+0

這沒有按」以任何方式解決問題的實質。我想弄清楚如何獲取包含屬性列表的對象,並將這些屬性應用到我的模板中的標籤。例如。 'input(attributes)'其中屬性是一個對象,屬性名稱爲鍵,屬性值爲值。我不需要重命名'本地人'。 – Prestaul

+0

道歉Prestaul,我誤解了這個問題。如果你找到答案,請發表你的答案。 – jwerre

+0

不用擔心。會做。 – Prestaul

相關問題