Estoy tratando de especificar el índice de un elemento en una matriz dentro de una plantilla de manillar:
{
people: [
{"name":"Yehuda Katz"},
{"name":"Luke"},
{"name":"Naomi"}
]
}
usando esto:
<ul id="luke_should_be_here">
{{people[1].name}}
</ul>
Si lo anterior no es posible, ¿cómo escribiría un ayudante que pudiera acceder a un elemento específico dentro de la matriz?
javascript
handlebars.js
lukemh
fuente
fuente
Expecting 'ID'
error con {{user.links.websites.1}} o {{user.links.websites.0}}{{ websites.[0] }}
.Lo siguiente, con un punto adicional antes del índice , funciona exactamente como se esperaba. Aquí, los corchetes son opcionales cuando el índice va seguido de otra propiedad:
Sin embargo, los corchetes son obligatorios en:
En el último, usar el número de índice sin los corchetes obtendría uno:
Como comentario adicional: los corchetes se usan (también) para la sintaxis literal de segmento , para referirse a identificadores reales (no a números de índice) que de otra manera serían inválidos. Más detalles en ¿Qué es un identificador válido?
(Probado con manillares en YUI).
2.xx Actualización
Ahora puede usar el
get
ayudante para esto:aunque si recibe un error sobre el índice que necesita ser una cadena, haga lo siguiente:
fuente
{{#with people.1}}
solución funcionó para mí, usandocom.github.jknack:handlebars:4.1.2
.fuente
Si las características no documentadas no son su juego, lo mismo se puede lograr aquí:
Luego en una plantilla
Escribí lo anterior antes de tener
No puedo ver que uno llegue demasiado lejos con el manillar sin escribir sus propios ayudantes.
fuente
Si quieres usar variables dinámicas
Esto no funcionará:
Necesitas hacer:
ver ayudante de búsqueda de manillar y subexpresiones de manillar .
fuente
Por favor, intente esto, si desea buscar primero / último.
fuente
Mientras realiza un bucle en una matriz con
each
y si desea acceder a otra matriz en el contexto del elemento actual, lo hace así.Aquí están los datos de ejemplo.
Aquí está el manillar para obtener el primer elemento en la
attr
matriz.Esto dará salida
fuente
this
funcionaría en lugar dethis.[0]
La siguiente sintaxis también se puede usar si la matriz no tiene nombre (solo la matriz se pasa a la plantilla):
fuente
En mi caso, quería acceder a una matriz dentro de un asistente personalizado como este,
Lo que no funcionó, pero la respuesta sugerida por @julesbou funcionó.
Código de trabajo:
¡Espero que esto ayude! Salud.
fuente