javascript - Mustache.js získání aktuálního indexu pole
Při počátečním načtení stránky načítáme velký JSON datový objekt s novinkovými kanály. Používáme Mustache.js a vypisujeme všechny titulky z novinkových kanálů, což funguje skvěle.
Máme div oblast pro zobrazení detailů položky zpráv po kliknutí. Protože už máme data načtená, potřebuji předat index aktuální položky (index pole), abychom získali zprávu, ze které potřebujeme získat detaily.
{{#Data}}
<li>
{{eventName}}<br />
{{eventLocName}}<br />
{{eventLocCity}}, {{eventLocST}}
</li>
{{/Data}}
Chtěl bych přidat id k
{{#Data}}
<li id='{{Data.index}}'>
{{eventName}}<br />
{{eventLocName}}<br />
{{eventLocCity}}, {{eventLocST}}
</li>
{{/Data}}
Jaká je syntaxe pro získání indexu pole v mém Mustache.js šabloně?
AKTUALIZOVÁNO/FUNKČNÍ
Jakmile dostanu své results na DOM, použil jsem následující JS k přidání 'index' do každé položky pole. (výběr odpovědi pod kódem pomohl)
for (i in result)
result[i].index = i;
Odpověď č. 1
Omlouvám se... Myslím, že budete muset ručně přidat index:
for (i in Data)
Data[i].index = i;
a
{{#Data}}
<li id='{{index}}'>
{{eventName}}<br />
{{eventLocName}}<br />
{{eventLocCity}}, {{eventLocST}}
</li>
{{/Data}}
Odpověď č. 2
Pokud vím, s Mustache.js to nelze udělat, ale s Handlebars.js to možné je, protože vlastně rozšiřuje funkcionalitu Mustache.
Můžete jednoduše importovat handlebars.js místo mustache.js (protože používá stejnou syntaxi a má stejnou funkčnost, ale s některými doplňky) a pak udělat
{{#each Data}}
<li id='{{@index}}'>
{{eventName}}<br />
{{eventLocName}}<br />
{{eventLocCity}}, {{eventLocST}}
</li>
{{/each}}
Prohlášení: Nejsem žádný odborník, takže by mě nepřekvapilo, kdybyste dostali lepší odpověď.
