Esta pode parecer uma pergunta boba, mas não consigo encontrar a resposta em lugar nenhum.
Estou acessando esta API da Web que retorna uma matriz de objetos no formato JSON:
A documentação do guiador mostra o seguinte exemplo:
<ul class="people_list">
{{#each people}}
<li>{{this}}</li>
{{/each}}
</ul>
Dentro do contexto de:
{
people: [
"Yehuda Katz",
"Alan Johnson",
"Charles Jolley"
]
}
No meu caso, não tenho um nome para o array, é apenas o objeto raiz da resposta. Tentei usar {{#each}}
sem sorte.
Primeira vez usando guiador ... O que estou perdendo?
ATUALIZAR
Aqui está um violino simplificado para mostrar o que estou pedindo: http://jsfiddle.net/KPCh4/2/
O guidão exige que a variável de contexto seja um objeto e não uma matriz?
arrays
loops
each
handlebars.js
emzero
fonte
fonte
Respostas:
Você pode passar
this
para cada bloco. Veja aqui: http://jsfiddle.net/yR7TZ/1/fonte
{{#each people}}
dentro do loop interno{{#each this}}
? Like{{people@index}}
Este violino tem ambos
each
e json direto. http://jsfiddle.net/streethawk707/a9ssja22/ .Abaixo estão as duas maneiras de iterar sobre o array. Um é com passagem json direta e outro está nomeando a matriz json enquanto passa para o portador de conteúdo.
Eg1: O exemplo abaixo está chamando diretamente a chave json (dados) dentro da variável small_data.
Em html, use o código abaixo:
O seguinte pode ser colocado no cabeçalho ou corpo do html:
O abaixo está em documento pronto:
O abaixo é o json:
Por fim, anexe o json ao suporte de conteúdo:
Ex. 2: Iteração usando cada um.
Considere o json abaixo.
Ao passar o json para o detentor do conteúdo, apenas nomeie-o desta forma:
E o modelo se parece com:
fonte
Eu quis dizer na
template()
ligação ..Você só precisa passar os resultados como um objeto. Então, ao invés de ligar
Faz
e usar
{{#each apidata}}
em seu código de modelodemonstração em http://jsfiddle.net/KPCh4/4/
( removeu algum
if
código restante que travou )fonte
{{#each this}}
é a forma correta.Os guiadores podem usar uma matriz como contexto. Você pode usar
.
como raiz dos dados. Assim, você pode fazer um loop pelos dados do array com{{#each .}}
.fonte
Usando
this
e{{this}}
. Veja o código abaixo em node.js:Saída de registro do console:
fonte