【发布时间】:2012-11-16 05:57:41
【问题描述】:
我有一些小的模板字符串,它们将通过 Mustache.js 在同一页面上呈现。我不需要为模板创建单独的 html 文件。
用于存储模板的选项:
存储在 javascript 变量中:Hackish 多行字符串,大量转义引号。
存储为隐藏 div 的 innerHTML。
我尝试了方法#2,但它似乎无法正常工作。
小提琴: http://jsfiddle.net/RHwnq/2/
<html>
<head></head>
<body>
<div id='templates' class='hide' align="">
<div id='tableTemplate'>
<table class="table">
{{#name_list}}
<tr><td> {{name}} </td></tr>
{{/name_list}}
</table>
</div>
</div>
<script>
var template = $('#tableTemplate').html();
console.log(template);
</script>
</body>
</html>
这个日志:
{{#name_list}}
{{name}}
{{/name_list}}
<table class="table"><tbody><tr><td></td></tr></tbody></table>
而不是:
<table class="table">
{{#name_list}}
<tr><td> {{name}} </td></tr>
{{/name_list}}
</table>
这可能是由于浏览器的一些标记更正所致。 在 HTML 页面中存储 HTML 模板还有哪些其他好的技巧?
【问题讨论】:
-
不将它们存储在同一个文件中,而是通过 AJAX 加载它们怎么样?
-
@feeela 不,我不想进行 ajax 调用来加载 2-3 个小字符串,我打算将它们存储在同一页面中。
-
在一些与backbone.js/underscore.js 相关的教程中,他们将模板存储在 标签中。仔细看看这个问题:stackoverflow.com/questions/4912586/…
标签: javascript mustache