Esta puede parecer una pregunta tonta, pero parece que no puedo encontrar la respuesta en ninguna parte.
Estoy llegando a esta API web que devuelve una matriz de objetos en formato JSON:
Los documentos de Handlebars muestran el siguiente ejemplo:
<ul class="people_list">
{{#each people}}
<li>{{this}}</li>
{{/each}}
</ul>
En el contexto de:
{
people: [
"Yehuda Katz",
"Alan Johnson",
"Charles Jolley"
]
}
En mi caso, no tengo un nombre para la matriz, es solo el objeto raíz de la respuesta. Intenté usarlo {{#each}}
sin suerte.
Primera vez que uso Manillar ... ¿Qué me estoy perdiendo?
ACTUALIZAR
Aquí hay un violín simplificado para mostrarle lo que estoy preguntando: http://jsfiddle.net/KPCh4/2/
¿El manillar requiere que la variable de contexto sea un objeto y no una matriz?
arrays
loops
each
handlebars.js
emzero
fuente
fuente
Respuestas:
Puedes pasar
this
a cada bloque. Vea aquí: http://jsfiddle.net/yR7TZ/1/fuente
{{#each people}}
dentro del bucle interno{{#each this}}
? Me gusta{{people@index}}
Este violín tiene
each
json directo y. http://jsfiddle.net/streethawk707/a9ssja22/ .A continuación se muestran las dos formas de iterar sobre una matriz. Uno es con el paso directo de json y otro es nombrar la matriz json mientras se pasa al contenedor de contenido.
Eg1: El siguiente ejemplo está llamando directamente a la clave json (datos) dentro de la variable small_data.
En html use el siguiente código:
Lo siguiente se puede colocar en el encabezado o en el cuerpo de html:
El siguiente está listo para el documento:
El siguiente es el json:
Finalmente adjunte el json al soporte de contenido:
Eg2: Iteración usando cada uno.
Considere el siguiente json.
Al pasar el json al titular del contenido, simplemente nómbrelo de esta manera:
Y la plantilla se ve así:
fuente
Quise decir en la
template()
llamada ..Solo necesita pasar los resultados como un objeto. Entonces en lugar de llamar
hacer
y utilícelo
{{#each apidata}}
en su código de plantillademostración en http://jsfiddle.net/KPCh4/4/
( eliminó algunos
if
códigos sobrantes que fallaron )fuente
{{#each this}}
es la forma correcta.Los manillares pueden usar una matriz como contexto. Puede utilizarlo
.
como raíz de los datos. Para que pueda recorrer los datos de su matriz con{{#each .}}
.fuente
Usando
this
y{{this}}
. Consulte el código a continuación en node.js:Salida del registro de la consola:
fuente