2012-02-28 89 views
1

我是JSON和小鬍子的新手。我試圖迭代我使用Mustache創建的數組,並且遇到了一些問題。我的代碼如下所示:如何使用小鬍子迭代JSON數組

var shows=[   
     {"title":"Strawberry Shortcake","description":"A show about a cake","video":"none","category":"chilren"}, 
     {"title":"Vanilla Ice","description":"A show about a ice","video":"none","category":"adult"} 
]; 

var template="{{#shows}}{{.}}{{/shows}}"; 

var html=Mustache.render(template,shows); 

document.write(html); 
+1

請解釋這些問題的* *。你期望什麼? – kapa 2012-02-28 16:10:43

+0

你寫過「interate」而不是「iterate」。我不能自己編輯它,因爲它只是一個字符。 – hippietrail 2012-02-28 16:12:35

回答

2

你想要的「節目」是在散,以便正確地迭代:

var shows={"shows":[   
     {"title":"Strawberry Shortcake","description":"A show about a cake","video":"none","category":"chilren"}, 
     {"title":"Vanilla Ice","description":"A show about a ice","video":"none","category":"adult"} 
]}; 

var template="{{#shows}}{{.}}{{/shows}}"; 

var html=Mustache.render(template,shows); 

document.write(html); 

這將產生你的模板多次的預期效果。

UPDATE

要在lambda表達式你的問題。我只是在manual看這個。我認爲它涵蓋了你問什麼:

當值是一個可調用對象,如函數或lambda,該 對象將被調用,並通過文本塊。文字通過 是文字塊,未呈現。 {{tags}}將不會被擴展 - lambda應該自己做。這樣你就可以實現過濾器或緩存。

模板:

{{#wrapped}} 
    {{name}} is awesome. 
{{/wrapped}} 

哈希:

{ 
    "name": "Willy", 
    "wrapped": function() { 
    return function(text) { 
     return "<b>" + render(text) + "</b>" 
    } 
    } 
} 
+0

謝謝,完美的工作! – user1238282 2012-02-28 16:25:08

1

U可以這樣做:

 
var shows=[   
     {"title":"Strawberry Shortcake","description":"A show about a cake","video":"none","category":"chilren"}, 
     {"title":"Vanilla Ice","description":"A show about a ice","video":"none","category":"adult"} 
]; 

var template="{{#.}}title:{{title}},video:{{video}}{{/.}}"; 

var html=Mustache.render(template,shows); 

document.write(html);