迭代underscore.js模板中的对象

时间:2014-02-26 06:41:31

标签: javascript json underscore.js underscore.js-templating

帮助!这不应该那么困难,所以我想我错过了一些简单的事情......

我有一个变量用作下划线模板。这是一个例子(还有更多内容,但为简单起见,这是重要的代码):

var template = '<% _.each(favorites, function(value, key) { %> <li><%= key %>: <%= value %></li> <% }); %>';

你可能会问“最爱”中有什么?它来自一个看起来像这样的JSON对象(切掉其他JSON)。

"favorites" : [
    { "food" : "shrimp" },
    { "drink" : "none" }
]

为什么我无法弄清楚如何在模板中输出键/值对。我想做的就是打印这样的东西:

<li>food: shrimp</li>
<li>drink: none</li>

我做错了什么?

1 个答案:

答案 0 :(得分:1)

我从一个不同的数据结构开始,一个合适的集合:

favorites: [
  {type: "food", name: "shrimp"},
  {type: "drink" name: "none"}
];

然后您可以创建模板,如:

var template = [
  '<% _.each(favorites, function(item) { %>',
    '<li><%= item.type %>: <%= item.name %></li>',
  '<% }); %>'
].join('');