variable utilizar pasar insertar funciones datos como javascript templates

utilizar - ¿Qué buen lenguaje de plantilla es compatible con JavaScript?



pasar variable laravel a javascript (15)

Las plantillas son un negocio bastante saludable en los lenguajes de programación establecidos, pero ¿hay algunas buenas que se puedan procesar en JavaScript?

Por "plantilla" me refiero a un documento que acepta un objeto de datos como entrada, inserta los datos en algún tipo de lenguaje de marcado serializado y emite el marcado. Los ejemplos más conocidos son JSP , el PHP original, XSLT .

Con "bueno" me refiero a que es declarativo y fácil de escribir para un autor de HTML, es robusto y también es compatible con otros idiomas. Algo mejor que las opciones que conozco. Algunos ejemplos de "no es bueno":

Cadena matemática:

element.innerHTML = "<p>Name: " + data.name + "</p><p>Email: " + data.email + "</p>";

claramente demasiado difícil de manejar, la estructura HTML no es aparente.

XSLT:

<p><xsl:text>Name: </xsl:text><xsl:value-of select="//data/name"></p> <p><xsl:text>Email: </xsl:text><xsl:value-of select="//data/email"></p>

// Estructuralmente esto funciona bien, pero seamos sinceros, XSLT confunde a los desarrolladores de HTML.

Trimpath:

<p>Name: ${data.name}</p><p>Email: ${data.email}</p>

// Esto es bueno, pero el procesador solo es compatible con JavaScript, y el lenguaje es algo primitivo ( http://code.google.com/p/trimpath/wiki/JavaScriptTemplateSyntax ).

Me encantaría ver un subconjunto de JSP o ASP o PHP portado al navegador, pero no lo he encontrado.

¿Cuáles son las personas que usan estos días en JavaScript para su creación de plantillas?

Apéndice

Después de unos meses, se han publicado muchos lenguajes de plantillas prácticos, pero la mayoría no se pueden utilizar en ningún otro idioma. La mayoría de estas plantillas no se podían usar fuera de un motor de JavaScript.

La excepción es la de Microsoft: puede procesar la misma ASP en el navegador o en cualquier otro motor ASP. Eso tiene su propio conjunto de problemas de portabilidad, ya que está obligado a los sistemas de Microsoft. Lo marqué como la respuesta, pero todavía estoy interesado en más soluciones portátiles.

Gracias por toda la información hasta ahora!


Aquí hay uno implementado en jQuery para el lenguaje de plantillas Smarty. http://www.balupton.com/sandbox/jquery-smarty/demo/

Una característica impresionante es el soporte para actualizaciones dinámicas. Entonces, si actualiza una variable de plantilla, se actualizará en cualquier lugar de la plantilla donde se use esa variable. Bastante ingenioso.

También puede enganchar cambios variables usando un evento onchange. Así que eso es útil para decir, realizar efectos o AJAX cuando dice que la variable "página" cambia ;-)


Es posible que desees echarle un vistazo a Moustache : es un lenguaje de plantilla realmente portátil y simple con soporte de JavaScript entre otros idiomas.






Plantillas distales http://code.google.com/p/distal es un poco como su demo XSLT pero más simple:

<p>Name: <span data-qtext="data.name"></span></p> <p>Email: <span data-qtext="data.email"></span></p>


Si está utilizando el Script #, es posible que desee considerar SharpTemplate , un motor de plantillas HTML súper eficiente y fuertemente tipado.


Si usa Rhino (una implementación Java de JavaScript), también puede ejecutar el lenguaje de plantillas de JavaScript que desee en el servidor.

También sabe con certeza que los resultados de la plantilla del servidor y del navegador son idénticos. (Si la plantilla se implementa en 2 idiomas, puede haber algunas diferencias sutiles entre las implementaciones).

... Pero ahora, 5 años más tarde (es decir, el año 2016), con Java 8, estarías usando Nashorn en lugar de Rhino. Aquí hay una introducción a Nashorn, y si te desplazas un poco hacia abajo, encontrarás un ejemplo de Nashorn + el lenguaje de plantillas de Mustahce: http://www.oracle.com/technetwork/articles/java/jf14-nashorn-2126515 .html

(Personalmente uso el lado del servidor de React.js, a través de Nashorn (pero React no es un lenguaje de plantillas).)



Yo uso plantillas de Google Closure . http://code.google.com/closure/templates/docs/helloworld_js.html

Plantillas simples, soporte BiDi , escapes automáticos, optimizados para la velocidad. Además, el análisis sintáctico de la plantilla ocurre como un paso de compilación, por lo que no ralentiza al cliente. Otro beneficio es que puede usar las mismas plantillas de Java, en caso de que necesite generar su HTML en el servidor para los usuarios con JavaScript deshabilitado.


Las plantillas de cierre son un sistema de plantillas bastante robusto de Google, y funcionan tanto para Javascript como para Java. He tenido buenas experiencias al usarlos.