Cómo iterar sobre la matriz en la plantilla del manillar sin nombre definido en el modelo
-
12-12-2019 - |
Pregunta
Tengo modelo:
[
{
"ID": 5,
"email": "xx@vflbg.com"
},
{
"ID": 6495,
"email": "email@monkey.com"
}
]
Código para ITERATINA EN HANDERBARS:
{{#each xxx}}
<p>{{email}}</p>
{{/each}}
¿Cómo define xxx?
Si JSON tenía nombre en modelo como:
users: [
{
"ID": 5,
"email": "xx@vflbg.com"
},
{
"ID": 6495,
"email": "email@monkey.com"
}
]
Iría simple iterar en los manillares como:
{{#each users}}
<p>{{email}}</p>
{{/each}}
Solución
Si tiene esto:
var a = [
{
"ID": 5,
"email": "xx@vflbg.com"
},
{
"ID": 6495,
"email": "email@monkey.com"
}
];
Luego, solo suministre el nombre deseado cuando llame a la plantilla compilada:
var t = Handlebars.compile($('#t').html());
var h = t({ users: a });
Eso lo dejará con el HTML deseado en h
.
Demo: http://jsfiddle.net/ambiguo/zgvjz/
Si tiene una colección construida a partir de los datos:
var c = new C(a);
Luego llamaste la plantilla como esta:
var h = t({ users: c.toJSON() });
Otros consejos
Esto también funciona:
{{#each this}}
<p>{{email}}</p>
{{/each}}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow