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