Hola chicos!Plantillas de representación dentro de los ayudantes en el manillar
Porque parece que no hay respuesta en esto: Passing variables through handlebars partial todavía, estoy trabajando en una pequeña solución para hacer este trabajo. Entonces, la idea es registrar una función auxiliar que rinde una plantilla específica con valores posibles. Un código de bit lo hace mejor para entender.
Así es como un yo invoco el que me ayuda
<div>
{{myHelper}}
</div>
Esta ayuda se ha registrado en este pequeño código:
hbs.registerHelper(name, function (args) {
args = args || {};
var template = hbs.compile(fs.readFileSync(__dirname + '/' + file, 'utf8'));
return template(args);
});
pongo este snippiet en un bucle para registrar diferentes ayudantes en una vez. Esto significa que se da 'nombre' y 'archivo'.
Bueno, ahora soy capaz de hacer algo como esto:
// 'values' could be something like this:
var values = { headline: 'HEADLINE' }
<div>
{{myHelper values}}
</div>
Dentro de un ayudante ahora puedo comprobar si se le da un ciertos valores:
// myHelper template
<div>
{{#if headline}}
<h1>{{headline}}</h1>
{{/if}}
<p>Lorem ipsum</p>
</div>
Esta pequeña solución funciona para mí , Pero hay un problema. Al registrar un helper como se explicó anteriormente, se devuelve una cadena escapada de HTML simple. Por lo tanto, invocar a un ayudante no genera un fragmento de HTML renderizado. Muestra el HTML como una cadena escapada.
¿Alguien de ustedes tiene una idea de cómo puedo hacer que mi fragmento de código devuelve el HTML como HTML?
/Pascal
Sí! ¡Funciona para mi! ¡Muchas gracias hombre! – PascalPrecht
Si funcionó, marque la respuesta en consecuencia – brafales
Sólo en caso de que alguien se encuentra con esto .... El método 'SafeString' se debe acceder a través de' hbs.handlebars' y no directamente a través 'hbs' ... esto es para el nodo. js usuarios :) – Maroshii