JavaScript支持哪种好的模板语言?

Tra*_*son 18 javascript templates

模板在已有的编程语言中是一项相当健康的业务,但有哪些好的可以在JavaScript中处理?

"模板"是指接受数据对象作为输入的文档,将数据插入某种序列化标记语言,并输出标记.众所周知的例子是JSP,原始的PHP,XSLT.

"好",我的意思是HTML作者的声明和容易编写,它是健壮的,并且它也支持其他语言.比我所了解的选项更好.一些"不好"的例子:


字符串数学:

element.innerHTML = "<p>Name: " + data.name
    + "</p><p>Email: " + data.email + "</p>";
Run Code Online (Sandbox Code Playgroud)

显然太笨重,HTML结构不明显.


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>
Run Code Online (Sandbox Code Playgroud)

//结构上这很好用,但是让我们面对它,XSLT会混淆HTML开发人员.


Trimpath:

<p>Name: ${data.name}</p><p>Email: ${data.email}</p>
Run Code Online (Sandbox Code Playgroud)

//这很好,但处理器仅在JavaScript中受支持,并且该语言有点原始(http://code.google.com/p/trimpath/wiki/JavaScriptTemplateSyntax).


我很想看到一个JSP或ASP或PHP的子集移植到浏览器,但我还没有找到.

现在人们在JavaScript中使用什么来模仿它们?

附录

几个月后,这里发布了大量可行的模板语言,但大多数语言都不能用于任何其他语言.大多数这些模板无法在JavaScript引擎之外使用.

例外是微软 - 您可以在浏览器或任何其他ASP引擎中处理相同的ASP.由于您已经绑定到Microsoft系统,因此它有自己的一组可移植性问题.我已经将其标记为答案,但我仍然对更便携的解决方案感兴趣.

感谢所有输入到目前为止!

Mla*_*vic 13

John Resighttp://ejohn.org/blog/javascript-micro-templating/上有一个迷你javascript模板引擎

  • 我很喜欢Resig的引擎.问题是它永远不能在Javascript之外支持,因为它依赖于内联Javascript来控制所有控制流.(就像JSP 1依赖于内联Java的方式一样,JSP 2试图纠正它的相同效果.) (2认同)

Mik*_*cki 10

您可能想要查看Mustache - 它是非常便携和简单的模板语言,其他语言支持javascript.


cka*_*ass 6

我今天遇到过这个,虽然我没试过......

http://beebole.com/pure/


nas*_*nas 5

Closure模板是一个来自Google的相当强大的模板系统,它们适用于Javascript和Java.我有很好的使用经验.