提问人:Matt 提问时间:2/6/2011 最后编辑:InSyncMatt 更新时间:6/28/2023 访问量:238749
<script type = “text/template”的解释> ...</脚本>
Explanation of <script type = "text/template"> ... </script>
问:
我只是偶然发现了一些我以前从未见过的东西。在 Backbone.js 的示例 TODO 应用程序(Backbone TODO 示例)的源代码中,他们的模板位于 中,其中包含看起来像是带有标签的代码。<script type="text/template"></script>
PHP
JavaScript
有人可以向我解释一下吗?这是合法的吗?
答:
这些脚本标记是实现模板功能(如在 PHP 中)的常用方法,但在客户端。
通过将类型设置为“text/template”,它不是浏览器可以理解的脚本,因此浏览器将简单地忽略它。这允许您将任何内容放入其中,然后可以稍后提取这些内容,并由模板库用于生成 HTML 代码段。
Backbone不会强迫你使用任何特定的模板库 - 有很多:Mustache,Haml,Eco,Google Closure模板等等(你链接到的示例中使用的模板是下划线.js)。这些将使用自己的语法供您在这些脚本标记中编写。
评论
.innerHTML
<template />
<template>
补充 Box9 的答案:
Backbone.js依赖于下划线.js,它本身实现了John Resig的原始微模板。
如果您决定将 Backbone.js 与 Rails 一起使用,请务必查看 Jammit gem。它提供了一种非常干净的方式来管理模板的资产打包。http://documentcloud.github.com/jammit/#jst
默认情况下,Jammit 也使用 JResig 的微模板,但它也允许您替换模板引擎。
评论
jQuery Templates 是一个示例,它使用此方法来存储不会直接呈现的 HTML(这就是重点)在其他 HTML 中: http://api.jquery.com/jQuery.template/
评论
这是一种在不呈现或规范化的情况下向 HTML 添加文本的方法。
这与添加它没有什么不同,例如:
<textarea style="display:none"><span>{{name}}</span></textarea>
评论
<img src="image.jpg">
image.jpg
</script>
这是合法的,非常方便!
试试这个:
<script id="hello" type="text/template">
Hello world
</script>
<script>
alert($('#hello').html());
</script>
一些 Javascript 模板库使用这种技术。Handlebars.js就是一个很好的例子。
评论
通过设置脚本标签以外的脚本标签,浏览器将不会执行脚本标签的内部代码。这称为微模板。这个概念被广泛用于单页应用程序(又名SPA)。type
text/javascript
<script type="text/template">I am a Micro template.
I am going to make your web page faster.</script>
对于微模板,脚本标记的类型为 。Jquery 的创建者 John Resig 对此进行了很好的解释 http://ejohn.org/blog/javascript-micro-templating/text/template
评论
<script type = "text/template"> … </script>
已过时。请改用标签。<template>
评论
<template>
自 IE 11 起,Internet Explorer 仍不支持标记。
<template>
<template>
评论
type="text/tcl"