小编典典

<script type =“ text / template”>…</ script>的说明

javascript

我偶然发现了以前从未见过的东西。在Backbone.js的示例TODO应用程序(BackboneTODOExample)的源代码中,他们将模板<scripttype="text/template"></script>包含在中,其中包含看起来像PHP之外但带有JavaScript标记的代码。

谁可以给我解释一下这个?这是合法的吗?


阅读 763

收藏
2020-04-25

共2个答案

小编典典

这些脚本标记是在客户端实现模板功能(如PHP)的常用方法。

通过将类型设置为“文本/模板”,它不是浏览器可以理解的脚本,因此浏览器将简单地忽略它。这使您可以在其中放置任何内容,然后可以将其提取出来,然后由模板库用于生成HTML代码段。

Backbone不会强迫您使用任何特定的模板库-那里有很多模板库:Mustache,Haml,Eco,Google Closure模板等(在您链接到的示例中使用的模板是underscore.js)。这些脚本将使用它们自己的语法在这些脚本标记中进行编写。

2020-04-25
小编典典

合法而且非常方便!

尝试这个:

<script id="hello" type="text/template">
  Hello world
</script>
<script>
  alert($('#hello').html());
</script>

一些Javascript模板库使用此技术。Handlebars.js是一个很好的例子。

2020-04-27