Hej!Renderowanie szablonów w pomocnikach w kierownicy
Ponieważ wydaje się, że nie ma odpowiedzi na to: Passing variables through handlebars partial jeszcze, pracuję obecnie nad małym obejściem, aby uzyskać tę pracę. Chodzi o to, aby zarejestrować funkcję pomocnika, która renderuje określony szablon z możliwymi wartościami. Kod bitowy ułatwia zrozumienie.
ten sposób, że a i wywołać mój pomocnika:
<div>
{{myHelper}}
</div>
Ten pomocnik jest zarejestrowany w tym trochę kodu:
hbs.registerHelper(name, function (args) {
args = args || {};
var template = hbs.compile(fs.readFileSync(__dirname + '/' + file, 'utf8'));
return template(args);
});
Ja to snippiet w pętlę zarejestrować się w różnych pomocników pewnego razu. Oznacza to, że podane są "nazwa" i "plik".
Ok teraz jestem w stanie zrobić coś takiego:
// 'values' could be something like this:
var values = { headline: 'HEADLINE' }
<div>
{{myHelper values}}
</div>
obrębie pomocnika mogę teraz Sprawdza czy pewne wartości podano:
// myHelper template
<div>
{{#if headline}}
<h1>{{headline}}</h1>
{{/if}}
<p>Lorem ipsum</p>
</div>
To małe obejście działa dla mnie , ale jest jeden problem. Rejestracja helpera, jak wyjaśniono powyżej, zwraca zwykły łańcuch zawierający znaki ucieczki HTML. Zatem wywołanie helpera nie powoduje wyprowadzenia renderowanego fragmentu kodu HTML. Wyprowadza kod HTML jako ciąg znaków ucieczkowych.
Czy ktoś z was ma pomysł, w jaki sposób mogę spowodować, aby fragment kodu zwrócił HTML jako HTML?
/Pascal
Tak! To działa dla mnie! Dzięki wielkie! – PascalPrecht
Jeśli to zadziałało, zaznacz odpowiedź odpowiednio – brafales
Na wszelki wypadek, gdy ktoś się na to natknie ... Metoda 'SafeString' musi być dostępna poprzez' hbs.handlebars', a nie bezpośrednio przez 'hbs' ... to jest dla węzła. js użytkowników :) – Maroshii