我只是偶然发现了一些我以前从未见过的东西。在 Backbone.js 的示例 TODO 应用程序(Backbone TODO 示例)的源代码中,他们将模板放在 a<script type = "text/template"></script>中,其中包含看起来像 PHP 之外的代码但带有 JavaScript 标记的代码。
<script type = "text/template"></script>
谁可以给我解释一下这个?这是合法的吗?
这些脚本标签是实现模板功能(如在 PHP 中)但在客户端的常用方法。
通过将类型设置为“文本/模板”,它不是浏览器可以理解的脚本,因此浏览器将直接忽略它。这使您可以在其中放置任何内容,然后可以稍后将其提取并由模板库使用以生成 HTML 片段。
Backbone 不会强迫您使用任何特定的模板库 - 那里有很多:Mustache、Haml、Eco、Google Closure 模板等(您链接到的示例中使用的是underscore.js)。这些将使用它们自己的语法让您在这些脚本标签中编写。