我偶然发现了以前从未见过的东西。在Backbone.js的示例TODO应用程序(BackboneTODOExample)的源代码中,他们将模板<scripttype="text/template"></script>包含在中,其中包含看起来像PHP之外但带有JavaScript标记的代码。
<scripttype="text/template"></script>
谁可以给我解释一下这个?这是合法的吗?
这些脚本标记是在客户端实现模板功能(如PHP)的常用方法。
通过将类型设置为“文本/模板”,它不是浏览器可以理解的脚本,因此浏览器将简单地忽略它。这使您可以在其中放置任何内容,然后可以将其提取出来,然后由模板库用于生成HTML代码段。
Backbone不会强迫您使用任何特定的模板库-那里有很多模板库:Mustache,Haml,Eco,Google Closure模板等(在您链接到的示例中使用的模板是underscore.js)。这些脚本将使用它们自己的语法在这些脚本标记中进行编写。
合法而且非常方便!
尝试这个:
<script id="hello" type="text/template"> Hello world </script> <script> alert($('#hello').html()); </script>
一些Javascript模板库使用此技术。Handlebars.js是一个很好的例子。