Если вы хотите вывести массив массивов, можете сделать это:
{{for item itemVar="~item"}}
{{for ~item itemVar="~inner"}}
.....
{{/for}}
{{/for}}
Для вашего набора данных:
var data = {
item: [
[
{to: "a", from: "b", messageContent: "foo"},
{to: "b", from: "a", messageContent: "bla"}
],
[
{to: "a1", from: "b1", messageContent: "foo1"},
{to: "b1", from: "a1", messageContent: "bla1"},
{to: "b2", from: "a2", messageContent: "bla2"},
]
]
};
Шаблон выглядит следующим образом:
{{for item itemVar="~item"}}
<div>item {{:#index}} </div>
{{for ~item itemVar="~message"}}
<div>
-- message {{:#index}}
<b>from:</b> {{:~message.from}};
<b>to:</b> {{:~message.to}};
<b>content:</b> {{:~message.messageContent}};
</div>
{{/for}}
{{/for}}
пример для jsfiddle
Обновление
Нельзя использовать индекс дочернего цикла в родительском цикле. Это не работает так. Предположим, что мы решаем эту проблему, используя c JavaScript, родительский индекс i
и дочерний индекс j
объявляют их в самом начале, чтобы избежать проблем с видимостью.
var i,j;
Теперь попробуйте:
var i = 0, j = 0;
for (var i; i < 2; i++) {
console.log("p:" + i);
for (var j; j < 3; j++) {
console.log("ic" + j); // j = current index
}
console.log("c:" + j); // j = 3 (last index)
}
Как вы можете видеть, что это бесполезно.
Обновление 2
Вы можете выдвигать переменныев петлю сверху
{{for ~item itemVar="~message" ~parent_index=#index}}
<div>
-- item {{:~parent_index}}
...