Javascript 如何使用Mustache迭代JSON数组

Javascript 如何使用Mustache迭代JSON数组,javascript,json,mustache,Javascript,Json,Mustache,我不熟悉JSON和胡子。我正在尝试迭代使用Mustache创建的数组,但遇到了一些问题。我的代码如下所示: var shows=[ {"title":"Strawberry Shortcake","description":"A show about a cake","video":"none","category":"chilren"}, {"title":"Vanilla Ice","description":"A show about a

我不熟悉JSON和胡子。我正在尝试迭代使用Mustache创建的数组,但遇到了一些问题。我的代码如下所示:

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);
您希望“shows”位于散列中,以便正确迭代:

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);
这将产生多次生成模板的预期效果

更新

关于兰博达斯的问题。我只是在网上查了一下。我认为它涵盖了你所问的问题:

当值是可调用对象(如函数或lambda)时 对象将被调用并传递文本块。文本通过了 是文字块,未渲染。{{tags}}}将不会被展开 -lambda应该自己做这件事。通过这种方式,您可以实现过滤器或缓存

模板:

{{#wrapped}}
  {{name}} is awesome.
{{/wrapped}}
散列:

{
“姓名”:“威利”,
“包装”:函数(){
返回函数(文本){
返回“+渲染(文本)+”
}
}
}
你可以这样做:

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); 变量显示=[ {“标题”:“草莓酥饼”,“描述”:“蛋糕秀”,“视频”:“无”,“类别”:“儿童”}, {“标题”:“香草冰”,“描述”:“关于冰的表演”,“视频”:“无”,“类别”:“成人”} ]; var template=“{{{{}.}}标题:{{{title}},视频:{{{video}}{{/}}”; var html=Mustache.render(模板,显示); document.write(html);
请解释这些问题。你期望什么呢?你写的是“interate”而不是“iterate”。我不能自己编辑它,因为它只是一个字符。下面的问题。有没有一种方式可以让胡子本身支持过滤结果的功能。例如,我只想显示类别值为成人的位置? 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);