Pregunta

En realidad la pregunta está en el tema...¿Es posible crear un marco de plantilla de manillar para reconocer plantillas dentro de una etiqueta div y no en una etiqueta de script?

Por ejemplo, me gustaría crear una plantilla con este marcado:

<style>
    div.text-x-handlebars {display:none;}
</style>
<div class="text-x-handlebars-template">
    <h2>I'm template</h2>
    <p>{{welcomeMessage}}</p>
</div>
¿Fue útil?

Solución

Sí, puedes poner tus plantillas. <div>s en lugar de <script>s, por ejemplo:

http://jsfiddle.net/ambiguous/RucqP/

Sin embargo, hacerlo conlleva muchos peligros.Si pones tu plantilla dentro de un <div> entonces el navegador lo interpretará como HTML antes lo has completado;entonces, si el HTML de su plantilla no es válido hasta después se ha completado, el navegador puede intentar corregirlo y estropear las cosas.Además, si tienes id atributos en sus plantillas, entonces terminará con duplicados ids (uno en la plantilla <div> y una repetición en la plantilla completa que pusiste en el DOM) y eso causará todo tipo de errores extraños e interesantes.El navegador también intentará descargar cualquier imagen dentro de las plantillas en un <div>, esto puede ser un problema o no (incluso podría ser deseable, pero probablemente no sea deseable si la imagen usa una variable de plantilla en su src atributo).

Básicamente, puedes hacerlo pero no deberías, deberías poner tus plantillas en <script id="..." type="text/x-handlebars-template"> elementos en su lugar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top