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):
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:
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
:
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.
Ü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
?Tags und Links scala html variadic-functions playframework twirl