Hey Leute!Rendering-Vorlagen in den Helfern im Lenker
Da scheint es keine Antwort zu geben: Passing variables through handlebars partial noch arbeite ich derzeit an einer kleinen Problemumgehung, um diese Arbeit zu bekommen. Die Idee besteht also darin, eine Hilfsfunktion zu registrieren, die eine bestimmte Vorlage mit möglichen Werten rendert. Ein Bit-Code macht es besser zu verstehen.
Dies ist, wie ich meine ein Helfer aufgerufen würde:
<div>
{{myHelper}}
</div>
Dieser Helfer mit diesem kleinen Code registriert ist:
hbs.registerHelper(name, function (args) {
args = args || {};
var template = hbs.compile(fs.readFileSync(__dirname + '/' + file, 'utf8'));
return template(args);
});
ich diesen snippiet in eine Schleife stellen verschiedene Helfer registrieren Einmal. Dies bedeutet, dass 'Name' und 'Datei' angegeben sind.
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 eines Helfer kann ich jetzt testen, ob eine bestimmte Werte gegeben:
// myHelper template
<div>
{{#if headline}}
<h1>{{headline}}</h1>
{{/if}}
<p>Lorem ipsum</p>
</div>
Diese kleine Abhilfe für mich funktioniert aber es gibt ein Problem. Wenn Sie einen Helper wie oben beschrieben registrieren, wird eine einfache HTML-Escaped-Zeichenfolge zurückgegeben. Wenn also ein Helfer aufgerufen wird, wird kein gerenderter HTML-Code ausgegeben. Es gibt das HTML als eine Escapezeichenfolge aus.
Hat jemand von euch eine Idee, wie ich meinen Code-Ausschnitt den HTML-Code als HTML zurückgeben kann?
/Pascal
Ja! Das ist für mich in Ordnung! Vielen Dank Alter! – PascalPrecht
Wenn es funktioniert, markieren Sie die Antwort entsprechend – brafales
Nur für den Fall, dass jemand in diese ... läuft. Die SafeString-Methode muss über 'hbs.handlebars' und nicht direkt über' hbs' aufgerufen werden ... das ist für Knoten. js users :) – Maroshii