2012-01-13 63 views
5

我想模板对象的下列数组的数组:胡子模板使用对象

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

我该数组转换为对象,像这样:

arr = $.extend({}, arr); 

这给了我以下object:

{ 
0:{name:"Ryan Pays", url:"http://www.ryanpays.com"}, 
1:{name:"foo", url:"http://www.google.com"} 
} 

使用胡子我想用下列模板枚举该对象:

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 html = Mustache.to_html(template, displayData[0]); 

等等,但不是两者。

链接到这个问题的小提琴:

http://jsfiddle.net/AtJDa/

+8

“我小胡子你一个问题。” - 对不起,我不能 – bobobobo 2012-01-13 18:01:37

+0

我边分裂:) – RyanP13 2012-01-13 18:45:48

回答

16

你可以使用数组模板:

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}); 
+0

这就像一个魅力抗拒。甚至无法看到记录此功能。这个怎么用? – RyanP13 2012-01-13 19:47:10

+0

对不起,我看到现在发生了什么:) – RyanP13 2012-01-13 20:15:56

+0

谢谢nikoshr,这解决了我的问题,当使用由github产生的JSON feed时。 – Zander 2012-04-21 12:26:46

5

您需要使用小胡子的内置迭代功能:

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); 

http://jsfiddle.net/AtJDa/1/

的秘密武器是在段声明{{#friends}}

+0

我真的没有在应用程序中访问该级别的对象。我不好意思在原始问题中指定。 – RyanP13 2012-01-13 19:46:49

+0

我有同样的问题,我知道解决方案是什么(使用内置的迭代的东西),但我的问题是,我没有像你的例子中的“朋友”数据“处理”。从查看Firebug中返回的JSON,JSON数组上没有名称。我的集合就像'[{name:“Ryan Pays”,'not'{friends:[{name:“Ryan Pays”,''我可以在WebAPI服务器上命名集合的方法吗? – Jammer 2013-05-09 06:54:39