我有一些代码将div的html()设置为针对特定JSON的Mustache调用的结果
function render_bugs(json_file){
$.getJSON(json_file, function(json) {
$("#bug-list").html(Mustache.to_html($('#template').html(), json));
第一次调用函数时,没问题。但是当我用不同的“json_file”调用它时。它失败并出现以下错误:
haystack is null
return haystack.indexOf(this.otag + needle) != -1;
我最初认为问题出在JSON文件中,所以我交换了参数名称,但不是这样,json很好。
然后我添加了一个测试行,我只是在胡子调用之前设置了html,如下所示:
function render_bugs(json_file){
$.getJSON(json_file, function(json) {
$('#bug-list').html('<p>foo</p>');
$("#bug-list").html(Mustache.to_html($('#template').html(), json));
它根本不起作用。
如果要呈现的元素已经包含内容,就像Mustache不想工作
有什么方法吗?
答案 0 :(得分:2)
完成了工作
这是该页面的标记:
<div id="bug-list" />
<div id="template">
<p><strong>{{bugs}}</strong> bugs found in mingle</p>
{{#repos}}
<h2>{{repo-name}}</h2>
<ol>
{{#hotspots}}
<li>
<p class="file-name"><a>{{score}} - {{file}}</a></p>
<ol>
<li><em><span class="line-number">{{lines}}</span> lines of code</em></li>
<li><em><span class="traits">{{traits}}</span> traits mixed in</em></li>
{{#commits}}
<li>
<strong>{{date}}</strong> - {{message}}
<div class="code">{{{change}}}</div></li>
{{/commits}}
</ol>
</li>
{{/hotspots}}
</ol>
{{/repos}}
</div>
原来我用xml短手关闭“bug-list”div并不好玩。我猜它假设我没有正确关闭它,所以模板div生活在bug列表中。因此,第一次渲染调用将覆盖模板,这将使第二次调用失败。
将第一行更改为
<div id="bug-list"></div>
有效
愚蠢的浏览器