Das Rendern von templates innerhalb von Helfern im LENKER
Hey Jungs!
Da scheint es keine Antwort auf diese: Übergeben von Variablen über die LENKER teilweise noch, ich arbeite aktuell an einer kleinen workaround, um diese Arbeit zu bekommen. Also, die Idee ist zu registrieren eine Hilfsfunktion, die macht einer bestimmten Vorlage mit möglichen Werten. Ein bisschen code macht es besser zu verstehen.
So würde ich rufen meinen Helfer:
<div>
{{myHelper}}
</div>
Diese Helfer registriert ist, mit diesem kleinen code:
hbs.registerHelper(name, function (args) {
args = args || {};
var template = hbs.compile(fs.readFileSync(__dirname + '/' + file, 'utf8'));
return template(args);
});
Ich diese snippiet in eine Schleife zu registrieren, die verschiedenen Helfer auf einmal. Dies bedeutet 'name' und 'Datei'.
Okay jetzt bin ich in der Lage, so etwas zu tun:
//'values' could be something like this:
var values = { headline: 'HEADLINE' }
<div>
{{myHelper values}}
</div>
Innerhalb einer Helfer kann ich jetzt testen, ob ein bestimmter Werte gegeben:
//myHelper template
<div>
{{#if headline}}
<h1>{{headline}}</h1>
{{/if}}
<p>Lorem ipsum</p>
</div>
Dieser kleine workaround funktioniert für mich, aber es gibt ein problem. Registrieren Sie einen Helfer, wie oben erklärt, gibt eine Reine HTML-escaped string. So, invocing ein Helfer nicht Ausgabe eines gerenderten HTML-snippet. Es gibt das HTML als escaped string.
Hat jemand von Euch eine Idee, wie ich kann machen mein code-snippet zurück den HTML-Code als HTML?
/Pascal
InformationsquelleAutor Pascal Precht | 2012-07-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vom LENKER doc :
Versuchen
Wenn es funktioniert, markieren Sie die Antwort entsprechend
Danke für den Kommentar, ich es in meiner Antwort
Hat sich etwas ändern mit dem LENKER? LENKER.SafeString ist jetzt: safestring: Funktion SafeString(string) { dieses.string = string; } und nichts zurückgibt. Weiter gibt es keinen LENKER.LENKER.
Sie brauchen, um wieder "neue LENKER.SafeString(html)";
InformationsquelleAutor nikoshr
Ich möchte nur darauf hinweisen, dass die Verwendung von dreifach-Klammern entfällt die Notwendigkeit, jede zusätzliche Methoden zum konvertieren nach HTML. Zum Beispiel, wenn der Zugriff auf die Daten der Vorlage nur verwenden, dreifach geschweiften Klammern
{{{templateData}}}
, die es dir erlaubt, raw HTML.InformationsquelleAutor jzarob