我正在尝试使用javascript中的胡子模板渲染一个对象数组的数组,我还没有找到任何提出这个问题的人。我可以很好地渲染一个对象数组,但我无法弄清楚如何渲染它们的数组。我可以将每个嵌套数组分配给我自己的变量,但是可能有任意数量,所以我真的需要将它们保存为数组。
以下是我需要呈现的数据类型:
[
[
{ id: 12345, name: "Billy" },
{ id: 23456, name: "Joe" },
{ id: 34567, name: "Jenny" }
],
[
{ id: 45678, name: "Amy" },
{ id: 56789, name: "Julie" },
{ id: 67890, name: "Sam" }
]
]
外部数组可以包含任意数量的嵌套数组,每个嵌套数组可以包含任何数字对象。
我不知道胡子是否可能。我尝试使用一个函数,这是我第一次使用带胡子的函数,所以也许我做错了。我从Backbone View的渲染功能中调用它。数组数组(如上所示)是视图模型属性的一部分。所以这就是我的尝试。
render:
function ()
{
this.model.attributes.getList =
function ()
{
return function (str, func) { return 'What in the world should I return here?'; }
}
this.$el.html (Mustache.render ($ ('#detail-template').html (), this.model.attributes));
return this;
},
这是我模板的一部分,我试图使用该功能。
{{#getList}}
{{name}}
{{/getList}}
我很确定{{name}}不属于那里,但我不知道我还会把它放在那里。
我尝试返回func(str),但它打印的是一个包含[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]的长字符串,[对象对象],[对象对象]
我无法将该字符串用作json对象,它只是一个字符串。
我对骨干和小胡子都有点新意,所以我觉得有人可能会有一个“最佳实践”的解决方案,或者至少可以告诉我这是不可能的,所以我不再浪费时间了。我无法在互联网上的任何地方找到类似的问题。
答案 0 :(得分:3)
这个问题是2岁,但我觉得迟到总比没有好。您可以使用{{。}}来引用数组中的当前元素。
context = [
[
{ id: 12345, name: "Billy" },
{ id: 23456, name: "Joe" },
{ id: 34567, name: "Jenny" }
],
[
{ id: 45678, name: "Amy" },
{ id: 56789, name: "Julie" },
{ id: 67890, name: "Sam" }
]
]
template = "
{{#context}}
{{#.}}
<span id={{id}}>{{name}}</span>
{{/.}}
{{/context}}
"