Estou tentando especificar o índice de um item em uma matriz dentro de um modelo de guidão:
{
people: [
{"name":"Yehuda Katz"},
{"name":"Luke"},
{"name":"Naomi"}
]
}
usando isso:
<ul id="luke_should_be_here">
{{people[1].name}}
</ul>
Se o exposto acima não for possível, como eu escreveria um auxiliar que poderia acessar um item spefic dentro da matriz?
javascript
handlebars.js
lukemh
fonte
fonte
Expecting 'ID'
erro com o {{user.links.websites.1}} ou o {{user.links.websites.0}}{{ websites.[0] }}
.A seguir, com um ponto adicional antes do índice , funciona da maneira esperada. Aqui, os colchetes são opcionais quando o índice é seguido por outra propriedade:
No entanto, os colchetes são necessários em:
No último, usar o número do índice sem colchetes teria um:
Como um aparte: os colchetes (também) são usados para sintaxe literal de segmento , para se referir a identificadores reais (não números de índice) que de outra forma seriam inválidos. Mais detalhes em O que é um identificador válido?
(Testado com guidão na YUI.)
Atualização 2.xx
Agora você pode usar o
get
auxiliar para isso:embora se você receber um erro sobre o índice precisar ser uma string, faça:
fonte
{{#with people.1}}
solução funcionou para mim, usandocom.github.jknack:handlebars:4.1.2
.fonte
Se recursos não documentados não são o seu jogo, o mesmo pode ser feito aqui:
Em seguida, em um modelo
Eu escrevi o texto acima antes de me apossar de
Não vejo ninguém se aproximando demais do guidão sem escrever seus próprios auxiliares.
fonte
Se você deseja usar variáveis dinâmicas
Isso não vai funcionar:
Você precisa fazer:
consulte auxiliar de pesquisa do guiador e subexpressões do guiador .
fonte
Por favor, tente isso, se você deseja buscar primeiro / último.
fonte
Enquanto você estiver fazendo o loop em uma matriz com
each
e se desejar acessar outra matriz no contexto do item atual, faça o seguinte.Aqui estão os dados de exemplo.
Aqui está o guidão para obter o primeiro item da
attr
matriz.Isso produzirá
fonte
this
iria trabalhar em vez dethis.[0]
A sintaxe a seguir também pode ser usada se a matriz não for nomeada (apenas a matriz é passada para o modelo):
fonte
No meu caso, eu queria acessar uma matriz dentro de um auxiliar personalizado como esse,
O que não funcionou, mas a resposta sugerida por @julesbou funcionou.
Código de trabalho:
Espero que isto ajude! Felicidades.
fonte