为什么相同的JSON目标代码使用ul
元素生成输出,但不生成table
标记。
我的Mustache模板如下:
<div id="template-ul">
<h3>{{name}}</h3>
<ul>
{{#students}}
<li>{{name}} - {{age}}</li>
{{/students}}
</ul>
</div>
<div id="template-table">
<table>
<thead>
<th>Name</th>
<th>Age</th>
</thead>
<tbody>
{{#students}}
<tr>
<td>{{name}}</td>
<td>{{age}}</td>
</tr>
{{/students}}
</tbody>
</table>
</div>
以下是javascript代码:
var testing = {
"name" : "student-collection",
"students" : [
{
"name" : "John",
"age" : 23
},
{
"name" : "Mary",
"age" : 21
}
]
};
var divUl = document.getElementById("template-ul");
var divTable = document.getElementById("template-table");
divUl.innerHTML = Mustache.render(divUl.innerHTML, testing);
divTable.innerHTML = Mustache.render(divTable.innerHTML, testing);
以下是jsFiddle上的代码 - http://jsfiddle.net/pRSjH/2/
答案 0 :(得分:28)
您还可以在tbody中评论小胡子标记。并且表格将正确构建。
我的模板示例:
<div id="template-table">
<table>
<thead>
<th>Name</th>
<th>Age</th>
</thead>
<tbody>
<!--{{#students}}-->
<tr>
<td>{{name}}</td>
<td>{{age}}</td>
</tr>
<!--{{/students}}-->
</tbody>
</table>
</div>
答案 1 :(得分:2)
divTable.innerHTML
会返回this而不是正确的模板。
可能是因为浏览器尝试呈现无效的HTML。我认为您可以将模板放入<script>
标记中以解决此问题(the fiddle)