2016-04-11 15 views
5

Ich möchte zusätzliche Daten in jede Auswahloption von Grails g:select Taglib laden. Erforderlich Ausgabe ist wie folgt aus:Grails g: Wählen Sie HTML 5 Datenattribute

<select id="select"> 
    <option value="1" data-foo="dogs">this</option> 
    <option value="2" data-foo="cats">that</option> 
    <option value="3" data-foo="gerbils">other</option> 
</select> 

Ich bin nicht in der Lage, einen Weg finden, um die zusätzlichen Daten an die taglib unter Verwendung der Daten Attribute von HTML hinzuzufügen 5. Wie der ähnlichen Ausgang zu erreichen?

+1

Warum Sie nicht über eine einfache TagLib dies zu erreichen, schreiben folgenden using? – Armaiti

+1

Die eingebaute TagLib unterstützt diese Funktion nicht. Wenn Sie dies benötigen, müssen Sie Ihre eigenen implementieren. –

+0

Ja, ich habe das nur gemacht, bin aber hierher gekommen, um nachzusehen, ob es existiert oder ob es eine Abkürzung gibt. Danke für deine Antwort. – Chetan

Antwort

0

Wie in den obigen Kommentaren erwähnt, ist dies zur Zeit nicht möglich. Sie müssen Ihre eigene Tag-Bibliothek schreiben, um dieses Ziel zu erreichen.

3

Sie können dies tun, indem sie (Fehl-) einen Verschluss mit dem Wert (genannt Wahltaste in Grails wählen taglib) der Auswahlmöglichkeiten zu machen:

<g:select from="${books}" 
     optionKey="${{ book -> "${book.id}\" data-author=\"${book.author.name}"}}" 
     optionValue="title" 
     name="selectedBook"/> 

Dadurch werden die Optionen mit einem data-author Attribut machen:

<option value="1" data-author="Johann Wolfgang von Goethe">Faust</option> 

Dies funktioniert zumindest in Grails 2.4.4 und Grails 3.1.5.

+0

Es sieht aus wie mindestens Grails 3.2.2 (Ich bin nicht zurück zu schauen, wenn das Feature eingeführt wurde) das g: select-Tag enthält jetzt ein DataAttrs-Attribut, das Ihnen erlaubt Fügen Sie den Optionswerten in einem Select-Tag Daten * hinzu. Referenz hier: http://docs.grails.org/latest/ref/Tags/select.html – Aquatoad

0

können Sie ähnliches Ergebnis erreichen die

<select id="select"> 
    <g:each in="${books}" var="book"> 
    <option value="${book.id}" data-foo="${book.slug}">${book.name}</option> 
    </g:each> 
</select> 
Verwandte Themen