2012-06-02 12 views
7

Ich möchte gerne ein Objekt mit Schlüssel/Wert-Paaren übergeben, die Attribute für ein Element darstellen. Ist das mit Jade möglich? Eine Lösung, die es mir erlaubt, eine Attributsammlung in meine Vorlage zu übergeben, wäre ausreichend, aber die Möglichkeit, explizit deklarierte Attribute mit Attributen zu mischen, die aus einem Objekt extrahiert werden (wie unten), wäre ideal.Erweitern eines Objekts zum Festlegen von Attributen in Jade

Die folgende Syntax funktioniert nicht, es ist nur ein Beispiel für das, was ich tun möchte.

Zum Beispiel, wenn ich dies übergeben:

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

Zu dieser Vorlage:

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

Die gewünschte Ausgabe wäre:

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

Antwort

5

Da Sie ein Teil von this issue auf GitHub sind, werden Sie wahrscheinlich wissen, die Antwort bereits. Aber für alle anderen, hier ist die Antwort:

Jade:

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

Pass diese Daten zu Ihrer Render-Funktion:

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

Ausgang:

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

Ich schätze die Antwort. Das war eine Weile hier und ich hatte ehrlich vergessen, dass es hier war. Wie in der GitHub-Ausgabe erwähnt: ** & Attribute nicht Ausgabe entgeht so mit Vorsicht verwenden ** – Prestaul

+0

Gut zu wissen. Ich habe das nicht verstanden. – Jonathan

0

Sie benötigen ein Objekt zu übergeben benennen oder verwenden Sie das Schlüsselwort 'global' wie folgt:

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

Andernfalls müssen Sie Ihrem Objekt einen Namen geben und über diesen Bereich darauf zugreifen.

Check out the docs

+0

Diese doesn‘ t in irgendeiner Weise den Inhalt der Frage ansprechen. Ich versuche herauszufinden, wie man ein Objekt, das eine Liste von Attributen enthält, übernimmt und diese Attribute auf ein Tag in meiner Vorlage anwendet. Z.B. 'input (attributes)' wobei attributes ein Objekt mit Attributnamen als Schlüssel und Attributwerten als Werten ist. Ich muss "Einheimische" nicht umbenennen. – Prestaul

+0

entschuldigt Prestaul, ich habe die Frage missverstanden. Bitte posten Sie Ihre Antwort, wenn Sie eine finden. – jwerre

+0

Keine Sorge. Wird besorgt. – Prestaul

Verwandte Themen