在成熟的编程语言中,模板是一项相当健康的业务,但是有什么好的模板可以在 JavaScript 中处理吗?
"template"是指接受数据对象作为输入、将数据插入某种序列化标记语言并输出标记的文档。著名的例子是 JSP ,原始PHP,XSLT .
我所说的“好”是指它是声明性的,对于 HTML 作者来说很容易编写,它很健壮,并且也支持其他语言。比我所知道的选项更好的东西。 “不好”的一些例子:
<小时/>字符串数学:
element.innerHTML = "<p>Name: " + data.name
+ "</p><p>Email: " + data.email + "</p>";
显然太笨拙了,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>
//从结构上来说,这很有效,但让我们面对现实吧,XSLT 让 HTML 开发人员感到困惑。
<小时/>trim 路径:
<p>Name: ${data.name}</p><p>Email: ${data.email}</p>
//这很好,但处理器仅在 JavaScript 中受支持,并且该语言有点原始 ( http://code.google.com/p/trimpath/wiki/JavaScriptTemplateSyntax )。
<小时/>我希望看到 JSP 或 ASP 或 PHP 的子集移植到浏览器,但我还没有找到。
现在人们在 JavaScript 中使用什么来构建模板?
附录 1 (2008)
几个月后,这里发布了大量可用的模板语言,但其中大多数无法在任何其他语言中使用。这些模板中的大多数都无法在 JavaScript 引擎之外使用。
微软的异常(exception)——您可以在浏览器或任何其他 ASP 引擎中处理相同的 ASP。这有其自身的一系列可移植性问题,因为您必须使用 Microsoft 系统。我将其标记为答案,但我仍然对更便携的解决方案感兴趣。
附录 2(2020)
尘埃落定这个老问题,十年后,Mustache 得到了数十种语言的广泛支持。现在这是当前的答案,以防有人仍在阅读本文。
最佳答案
John Resig http://ejohn.org/blog/javascript-micro-templating/ 有一个迷你 javascript 模板引擎
关于javascript - JavaScript 支持哪些好的模板语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/128949/