2017-09-12 1 views
1

In einer Grails-Attribute TagLib i-Markup-Builder bin mit einem Aufschlag für die Erstellung, dieEigenschaften Objekt erweitern als Markup

a(href: '#', class: 'show-modal', properties) { 
    mkp.yield '+' 
} 

In diesem Fall Eigenschaften sieht aus wie dieses ist eine formatierte Satz von Objekteigenschaften: {data-internet=true, data-desc=Lorem ipsum}

Ich muss Eigenschaften als html5 Datenattribute erweitern. so etwas zu bekommen.

<a href="#" class="show-modal" data-internet=true, data-desc=Lorem ipsum>

Gerade jetzt statt dessen erhalte ich dieses Ergebnis

<a href="#" class="show-modal">{data-internet=true, data-desc=Lorem ipsum}+</a>

sich hierbei um ein grails TagLib Beispiel:

def test = { attrs -> 
    MarkupBuilder markupBuilder = new MarkupBuilder(out) 

    Map properties = ['data-internet': true, 'data-desc': 'Lorem ipsum...'] 

    markupBuilder.a(href: '', properties) { 
     mkp.yield 'More info' 
    } 
} 

Wenn aus einer Sicht I <g:test/> machen ich dies:

<a href="">{data-internet=true, data-desc=Lorem ipsum...}More info</a>

Und ich dies erwartet:

<a href="" data-internet='true', data-desc='Lorem ipsum...'>More info</a>

Vielen Dank für Ihre Zeit und für einige Idee

+1

Können Sie Ihr Beispiel ändern, so dass es ausgeführt werden kann und zeigen Sie die Ausgabe, die Sie sagen, y bekommst du? –

+0

Danke @tim_yates. Ich habe gerade ein Beispiel hinzugefügt – user615274

+1

Nicht an einem Computer, aber haben Sie versucht, den Spread-Map-Operator: 'MarkupBuilder.a (href: '', *: Eigenschaften)' –

Antwort

2

Sie die Ausbreitung-Karte Betreiber nutzen können, um die Karte auspacken und jeden Eintrag passieren als wäre es ein Parameter:

markupBuilder.a(href: '', *:properties) { 
    mkp.yield '+' 
} 
Verwandte Themen