2011-07-23 45 views
2

这里是JSON:我怎样才能使这个JSON使用mustache.js无环

var data = [ 
      { 
       "event": { 
        "name": "txt1", 
        "data": "2011-01-02", 
        "address": "Guangzhou Tianhe Mall" 
       } 
      }, 
      { 
       "event": { 
        "name": "txt2", 
        "data": "2011-01-02", 
        "address": "Guangzhou Tianhe Mall" 
       } 
      }, 
      { 
       "event": { 
        "name": "txt3", 
        "data": "2011-01-02", 
        "address": "Guangzhou Tianhe Mall" 
       } 
      } 
     ]; 

,我的胡子模板是:

 {{#event}} 
      <div> 
       <h2>{{name}}</h2> 
       <span>on {{data}}</span> 
       <p>{{address}}</p> 
      </div> 
     {{/event} 

所以模板代码上面的唐不work.What我现在做的是一个for循环:

var html = ""; 
for(var i = 0; i < data.length; i++){ 
     html += Mustache.to_html(tmp, data[i]); 
} 

任何更好的方式,使其工作没有任何循环?

回答

4

这里有一种方法可以对胡须模板做同样的处理。你设置你的数据如下:

var data = {data: [ 
    { 
     "event": { 
      "name": "txt1", 
      "data": "2011-01-02", 
      "address": "Guangzhou Tianhe Mall" 
     } 
    }, 
    { 
     "event": { 
      "name": "txt2", 
      "data": "2011-01-02", 
      "address": "Guangzhou Tianhe Mall" 
     } 
    }, 
    { 
     "event": { 
      "name": "txt3", 
      "data": "2011-01-02", 
      "address": "Guangzhou Tianhe Mall" 
     } 
    } 
]}; 

和你的模板应如下所示:

{{data}} 
{{#event}} 
<div> 
<h2>{{name}}</h2> 
<span>on {{data}}</span> 
<p>{{address}}</p> 
</div> 
{{/event} 
{{/data}} 

希望帮助

+0

这是使用mustache.js正确的做法。正如“用户”显示的那样,您需要有一个名称作为句柄以便对集合进行迭代。 –