¿Podría explicarme cómo funcionan los motores de plantillas en JavaScript? Gracias.¿Cómo funcionan los motores de plantillas en JavaScript?
JSON
{ "color" : "red"}
Plantilla
<strong><%=color%></strong>
Resultado
<strong>Red</strong>
¿Podría explicarme cómo funcionan los motores de plantillas en JavaScript? Gracias.¿Cómo funcionan los motores de plantillas en JavaScript?
JSON
{ "color" : "red"}
Plantilla
<strong><%=color%></strong>
Resultado
<strong>Red</strong>
Ellos pueden variar según la aplicación, pero el uno que está hablando parece que funciona de la siguiente manera:
analizar la página buscando las llaves en <%= %>
etiquetas
coincidir con la clave a la par clave/valor en el JSON
Reemplace las etiquetas/tecla con el valor.
Como punto de partida que os recomiendo dar un vistazo al método String.prototype.replace
y especialmente el uso de su función de devolución de llamada:
function replaceTokens(str, replacement) {
return str.replace(/<\%=([^%>]+)\%>/g, function (str, match) {
return replacement[match];
});
}
var input = "<strong><%=color%></strong>";
replaceTokens(input, { "color" : "Red"});
// returns <strong>Red</strong>
replaceTokens("<%=var1%> <%=var2%>", { "var1" : "Hello", "var2": "world!"});
// returns "Hello world!"
Dale un vistazo a estos artículos:
John Resing es la mejor variante – zloctb
no es muy diferente de otras soluciones de templates (a nivel conceptual).
{ "color" : "red"}
Especifica un atributo con el valor color
red
.
<strong><%=color%></strong>
Medios "Usar el valor de color
donde tengo <%=color%>
. Basado en wahat tenga, plantillas-motor probablemente camina el DOM y encuentra a los nodos que tienen valores que coinciden con <%=somestring%>
. A continuación, se comprueba para ver si no es un atributo que coincide con el valor somestring
Si hay uno, al que sustituye el valor de <%=somestring%>
con el valor definido en el JSON (que, en este caso es red
)
esto finalmente le da:..
<strong>Red</strong>
Su pregunta no es muy clara. ¿Puedes proporcionar más contexto? –
Creo que, en general, el enfoque para hacer un motor de plantillas es seleccionar los algoritmos apropiados e implementarlos utilizando técnicas de mejores prácticas para lograr el resultado deseado. – Pointy