将下划线模板传递给json数组

时间:2014-03-19 07:00:53

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

我觉得这应该是可能的,但我无法让它发挥作用。基本上,使用下划线和jQuery我有一个模板,然后我有一个对象数组,我想发送到模板。它看起来像这样:

var template = _.template($("script.template").html());
var jA = data.jsonArray;
$("#results").html(_.template(template(jA)));

我希望它将模板应用于数组中的每个对象,但它不起作用。

如果我做一个循环它可以工作,但这似乎应该是不必要的。

$.each(jA, function(index,value){
   $("#results").append(_.template(template(value)));
});

我错过了什么或者我是否必须做凌乱的循环? (jA绝对是一个json数组)

谢谢:)

1 个答案:

答案 0 :(得分:0)

是的,你需要做循环。 Underscore不会自动循环并重复附加已处理的模板,因为您为它提供了一个数组。我也不确定为什么你认为它应该是不必要的 - 如果你有一个特别需要来自列表中索引元素的模板,例如<%= data[0] %>怎么办?

无论如何,循环并不是很麻烦:

_.each(data, function(item) {
  list.append(template(item));
});

如果有帮助的话,请a pen