Scala Play Vorlage vararg HtmlContent

8

Ich habe eine generische Vorlage in play 2.6 , die ich in einer variablen Menge von HtmlContent s übergeben möchte. Ich habe das template so definiert (einschließlich des impliziten Parameters, den ich habe, falls sich irgendetwas ändert):

%Vor%

Auf der Vorlagenseite funktioniert das gut - ich kann content mit for zerlegen und es nach Belieben rendern. Ich war jedoch nicht in der Lage, eine saubere Methode zum Aufrufen der Variablenargumente aus der zugrunde liegenden Vorlage zu finden.

z. B. habe ich eine Ansicht namens "Baz":

%Vor%

Ich versuche, template mit mehreren Html-Argumenten aufzurufen. Ich habe Folgendes versucht:

%Vor%

Und verschiedene andere Permutationen, aber innerhalb einer einschließenden Klammer scheint es alles wörtlich als einen einzigen Parameter in HtmlContent vararg zu interpretieren.

Dies funktionierte jedoch so, wie ich es vorhatte, und übertrug mehrere HtmlContents :

%Vor%

Das funktioniert, und ich kann einen interpolierten String mit dreifacher Anführungszeichen für einen großen Html-Block verwenden - aber es scheint, als sollte es einen saubereren Weg geben, dies zu tun, und die String-Interpolation ist gefährlich, da sie nicht funktioniert HTML-Escaping.

Gibt es eine Möglichkeit, dies mit der { gekapselten Syntax zu tun? Ich würde gerne mehr darüber erfahren, was tatsächlich auf einer zugrunde liegenden Ebene geschieht und wie HtmlContent in Klammern analysiert und analysiert wird.

    
Nathan 25.11.2016, 18:45
quelle

1 Antwort

2

Überlegen Sie sich, ob Sie die Vorlage unten haben

%Vor%

Es gibt verschiedene Möglichkeiten, wie Sie diese Vorlage aufrufen können

Option # 1

Das haben Sie bereits in der Frage

gepostet %Vor%

Optionen # 2

%Vor%

Option # 3

%Vor%

Optionen # 4

Dies ist nicht genau dieselbe Option, aber Sie müssen die Template-Signatur selbst ändern

%Vor%

Und dann ruft es wie unten

%Vor%

Option # 5

Dies erfordert Code-Dateien und wurde bereits auf einem anderen SO-Thread beantwortet

Paul Drapers Antwort auf Warum werden mehrere HTML-Parameter nicht an Vorlagen übergeben

?     
Tarun Lalwani 09.10.2017 17:47
quelle