Javascript 使用对象数组创建胡须模板

Javascript 使用对象数组创建胡须模板,javascript,jquery,templates,mustache,Javascript,Jquery,Templates,Mustache,我正在尝试模板化以下对象数组: var arr = [{name:"Ryan Pays", url:"http://www.ryanpays.com"}, {name:"foo", url:"http://www.google.com"}]; 我将该数组转换为如下所示的对象: arr = $.extend({}, arr); var html = Mustache.to_html(template, displayData[0]); 这给了我以下对象: { 0:{name:"Ryan Pa

我正在尝试模板化以下对象数组:

var arr = [{name:"Ryan Pays", url:"http://www.ryanpays.com"}, {name:"foo", url:"http://www.google.com"}];
我将该数组转换为如下所示的对象:

arr = $.extend({}, arr);
var html = Mustache.to_html(template, displayData[0]);
这给了我以下对象:

{
0:{name:"Ryan Pays", url:"http://www.ryanpays.com"},
1:{name:"foo", url:"http://www.google.com"}
}
使用Mustache,我想使用以下模板枚举该对象:

var template = "<h4>Your friends' choices</h4>" +
               "<ul>" +
               "<li>" +
               "<p><strong>{{name}}</strong> likes <a href='{{url}}'>this</a></p>" +
               "</li>" +
               "</ul>";
var html = Mustache.to_html(template, displayData);
$('.choices').html(html);
等等,但不是两者都有

链接到本期的小提琴:


您可以将模板用于阵列:

var template = "<h4>Your friends' choices</h4>" +
    "<ul>" +
           "{{#arr}}"+
           "<li>" +
           "<p><strong>{{name}}</strong> likes <a href='{{url}}'>this</a></p>" +
           "</li>" +
           "{{/arr}}"+
    "</ul>";
var html = Mustache.to_html(template, {arr:arr});
var template=“你朋友的选择”+
“
    ”+ “{{{#arr}}”+ “
  • ”+ “{{name}喜欢

    ”+ “
  • ”+ “{{/arr}}”+ “
”; var html=Mustache.to_html(模板,{arr:arr});
您需要使用Mustach内置的迭代功能:

var template = "<h4>Your friends' choices</h4>" +
               "<ul>{{#friends}}" +
                 "<li>" +
                   "<p><strong>{{name}}</strong> likes <a href='{{url}}'>this</a></p>" +
                 "</li>" +
               "{{/friends}}</ul>";

var data = {friends: [{name:"Ryan Pays", url:"http://www.ryanpays.com"}, {name:"foo", url:"http://www.google.com"}]};

var html = Mustache.to_html(template, data);
var template=“你朋友的选择”+
“
    {{{朋友}”+ “
  • ”+ “{{name}喜欢

    ”+ “
  • ”+ “{{/朋友}
”; var data={friends:[{name:“Ryan Pays”,url:“http://www.ryanpays.com},{name:“foo”,url:http://www.google.com"}]}; var html=Mustache.to_html(模板、数据);


秘密在于声明{code>{{{friends}}

“我给你留了个小胡子,问你一个问题…”一节中——对不起,我无法抵抗,我在应用程序中没有访问该级别对象的权限。我的缺点是在最初的问题中没有具体说明这一点。我也有同样的问题,我知道解决方案是什么(使用内置的迭代工具),但我的问题是我没有“处理”数据,比如你例子中的“朋友”。从Firebug中返回的JSON来看,JSON数组中没有名称。我的收藏一开始就像是
[{name:“Ryan Pays”
而不是
{friends:[{name:“Ryan Pays”,
我可以在我的WebAPI服务器上为集合命名吗?这就像一个符咒。甚至看不到这个功能的文档。这是如何工作的?很抱歉,我现在看到了发生的事情:)谢谢nikoshr,这解决了我在使用github生成的JSON提要时遇到的问题。。