2009-06-19 8 views
15

Ich versuche, den Taglib-Aufruf verwenden, gibt es Attributparameter, sondern auch die Sachen innerhalb des Tags selbst, die die Link-Taglib verwendet. Ich kann das Attribut nicht finden, das an einen g.link() - Aufruf übergeben wird, um den Text des Links rendern zu lassen. Ich habe bereits "Body" und "Link" und "Text" und "LinkText" ausprobiert - keiner davon funktioniert.Grails Link Taglib Verwendung außerhalb von GSP

Ich erwarte

g.link(action:"foo", controller:"bar", _____:"text of the link here")

anrufen zu können, aber nicht wissen, was in _____

Antwort

4

Es gibt keine Parameter zu setzen, um übergeben (zum Besseren oder zum Schlechteren).

Um den Text in der Verknüpfung zu erhalten, übergeben Sie es als eine Schließung.

g.link(action:"foo", controller:"bar") { "text of the link here" }
25

Normalerweise Sie es wie folgt tun:

g.link(action:"foo", controller:"bar", "text of the link here") 

Der Link-Text nicht der letzte Parameter sein muss, kann es überall erscheinen:

g.link("text of the link here", action:"foo", controller:"bar") 

.

Verwendung mit Verschluss:

Anstelle der Zeichenfolge, die Sie einen Verschluss verwenden können, die einen String zurückzugibt:

g.link(action:"foo", controller:"bar", {"text of the link here"}) 

Und wie bei jedem groovy Verschluss, der der letzte Parameter für einen Methodenaufruf ist, Sie können es nach dem Schluss Klammern gesetzt:

g.link(action:"foo", controller:"bar") {"text of the link here"} 
+1

Die Dokumente beziehen sich nicht auf diese, aber zeigen eine Schließung. Google Docs muss wahrscheinlich aktualisiert werden. – user111544

+1

Ich habe die Antwort aktualisiert, um das zu erklären. – Zim

0

aus Gründen der Vollständigkeit, da es in der Dokumentation nicht erwähnt wird: wenn Sie die Tags (als metod Anrufe) anrufen Innerhalb Ihrer eigenen Taglib können Sie den Abschluss verwenden, um anderen Inhalt (unter Verwendung von out <<) innerhalb des äußeren Tags auszugeben. Zum Beispiel:

out << g.form(method: "post", controller: "login") { 
    out << "Name: " << g.textField(name: "name") << "<br>" 
    out << "Password: " << g.passwordField(name: "password") << "<br>" 
    out << g.submitButton(name: "login") 
}