2011-07-23 47 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正確的做法。正如「用戶」顯示的那樣,您需要有一個名稱作爲句柄以便對集合進行迭代。 –