Как перебирать массив в шаблоне дескриптора без определенного имени в модели
У меня есть модель:
[
{
"ID": 5,
"email": "[email protected]"
},
{
"ID": 6495,
"email": "[email protected]"
}
]
Код для итерации в ручках:
{{#each xxx}}
<p>{{email}}</p>
{{/each}}
как определить xxx?
Если JSON имеет имя в модели, например:
users: [
{
"ID": 5,
"email": "[email protected]"
},
{
"ID": 6495,
"email": "[email protected]"
}
]
Я бы просто перебирал в руле вроде:
{{#each users}}
<p>{{email}}</p>
{{/each}}
Ответы
Ответ 1
Если у вас есть это:
var a = [
{
"ID": 5,
"email": "[email protected]"
},
{
"ID": 6495,
"email": "[email protected]"
}
];
Затем просто укажите нужное имя при вызове скомпилированного шаблона:
var t = Handlebars.compile($('#t').html());
var h = t({ users: a });
Это оставит вас с вашим желаемым HTML в h
.
Демо: http://jsfiddle.net/ambiguous/ZgVjz/
Если у вас есть сборник, созданный из данных:
var c = new C(a);
Затем вы вызываете шаблон следующим образом:
var h = t({ users: c.toJSON() });
Демо: http://jsfiddle.net/ambiguous/uF3tj/
Ответ 2
Это тоже работает:
{{#each this}}
<p>{{email}}</p>
{{/each}}