Handlebars.js: @ bloque parcial poco claro o error de renderizado

Creado en 12 ene. 2016  ·  5Comentarios  ·  Fuente: handlebars-lang/handlebars.js

Template.hbs

<div>
    {{> @partial-block }}
</div>

Then Compile:

Handlebars.compile(fs.readFileSync("./template.hbs", "utf8"))({});

Èrror

/handlebars/runtime.js:266
    throw new _exception2['default']('The partial ' + options.name + ' could not be found');
    ^
Error: The partial @partial-block could not be found
    at Object.invokePartial (/handlebars/runtime.js:266:11)
    at Object.invokePartialWrapper [as invokePartial] (/handlebars/runtime.js:68:39)
    at Object.eval (eval at createFunctionContext (/handlebars/compiler/javascript-compiler.js:254:23), <anonymous>:6:28)

1144

Comentario más útil

@morgondag Tuve un problema similar y lo resolví usando una declaración if:

{{#if @partial-block}}
  {{> @partial-block }}
{{/if}}

Espero que ya lo hayas resuelto :)

Todos 5 comentarios

No tendrá un bloque parcial si está renderizando la plantilla directamente. Los bloques parciales solo están disponibles cuando una plantilla se representa como parcial, es decir, {{#> template}}this block{{/template}}

@kpdecker, por lo que no hay forma de usar la API de handelbars para compilar una plantilla con un bloque parcial.

¿No debería @partial-block s comportarse como variables? Si no están definidos, no se imprimen.

jade lo maneja de la misma manera.

@morgondag Tuve un problema similar y lo resolví usando una declaración if:

{{#if @partial-block}}
  {{> @partial-block }}
{{/if}}

Espero que ya lo hayas resuelto :)

@frederfred Ha pasado un tiempo desde que hiciste ese comentario. Pero noté que su ejemplo no está cubierto por un caso de prueba. Lo llamaría una coincidencia de que funcione así (solo funciona, porque el partial-block -parcial compilado se almacena en el objeto data del contexto de ejecución.

Dado que ha recibido tantos thumbs-up por este comentario, sugeriría que agreguemos un caso de prueba para ese ejemplo aquí .

Aceptaría un PR si alguien quisiera escribir esa prueba.

¿Fue útil esta página
0 / 5 - 0 calificaciones