javascript - Mustache.js obtendo o índice atual de um array
No carregamento inicial da página, estamos carregando um grande objeto de dados JSON com feeds de notícias. Estamos usando Mustache.js e listando todas as manchetes dos novos feeds, o que está funcionando muito bem.
Temos uma área div para exibir os detalhes do item de notícias clicado. Como já temos os dados carregados, preciso passar o índice do item atual (índice do array) para pegar o item de notícia do qual precisamos obter os detalhes.
{{#Data}}
<li>
{{eventName}}<br />
{{eventLocName}}<br />
{{eventLocCity}}, {{eventLocST}}
</li>
{{/Data}}
Eu gostaria de adicionar um id ao
{{#Data}}
<li id='{{Data.index}}'>
{{eventName}}<br />
{{eventLocName}}<br />
{{eventLocCity}}, {{eventLocST}}
</li>
{{/Data}}
Qual é a sintaxe para obter o índice do array no meu template Mustache.js?
ATUALIZADO/FUNCIONANDO
Uma vez que eu coloco meus resultados no DOM, usei o seguinte JS para adicionar o 'índice' em cada item do array. (selecionar a resposta abaixo do código ajudou)
for (i in result)
result[i].index = i;
Resposta #1
Desculpe... Acho que você precisa adicionar o índice manualmente:
for (i in Data)
Data[i].index = i;
e
{{#Data}}
<li id='{{index}}'>
{{eventName}}<br />
{{eventLocName}}<br />
{{eventLocCity}}, {{eventLocST}}
</li>
{{/Data}}
Resposta #2
Até onde eu sei, você não pode fazer isso com Mustache.js, mas você pode fazer com Handlebars.js, que basicamente estende a funcionalidade do Mustache.
Você pode simplesmente importar handlebars.js em vez de mustache.js (já que ele usa a mesma sintaxe e tem a mesma funcionalidade, mas com alguns extras) e então fazer
{{#each Data}}
<li id='{{@index}}'>
{{eventName}}<br />
{{eventLocName}}<br />
{{eventLocCity}}, {{eventLocST}}
</li>
{{/each}}
Aviso: Estou longe de ser um especialista, então não ficaria surpreso se você obtiver uma resposta melhor.
