Ich verwende Lenker für Vorlagen in meinem Projekt. Gibt es eine Möglichkeit, den Index der aktuellen Iteration eines "jeden" Helfers im Lenker abzurufen?
<tbody>
{{#each item}}
<tr>
<td><!--HOW TO GET ARRAY INDEX HERE?--></td>
<td>{{this.key}}</td>
<td>{{this.value}}</td>
</tr>
{{/each}}
</tbody>
javascript
handlebars.js
Thunderboltz
quelle
quelle
Antworten:
In den neueren Versionen von Handlebars wird der Index (oder der Schlüssel bei Objektiteration) standardmäßig mit dem Standard für jeden Helfer bereitgestellt.
Ausschnitt aus: https://github.com/wycats/handlebars.js/issues/250#issuecomment-9514811
Der Index des aktuellen Array-Elements ist seit einiger Zeit über @index verfügbar:
Verwenden Sie für die Objektiteration stattdessen @key:
quelle
Uncaught SyntaxError: Unexpected token ,
@index
und@first
jetzt auch für jede Iteration von Objekten unterstützt wird.{{@@index}}
Uncaught SyntaxError: Unexpected token ,
Dies hat sich in den neueren Versionen von Ember geändert.
Für Arrays:
Es sieht so aus, als ob der Block #each bei Objekten nicht mehr funktioniert. Mein Vorschlag ist, Ihre eigene Hilfsfunktion dafür zu rollen.
Danke für diesen Tipp .
quelle
Ich weiß, das ist zu spät. Aber ich habe dieses Problem mit folgendem Code gelöst:
Java Script:
HTML:
Wenn Sie Ihren Index mit 1 beginnen möchten, sollten Sie folgenden Code ausführen:
Javascript:
HTML:
Vielen Dank.
quelle
Ab Lenkerversion 3.0
In diesem speziellen Beispiel hat der Benutzer denselben Wert wie der aktuelle Kontext und die Benutzer-ID den Indexwert für die Iteration. Weitere Informationen finden Sie unter http://handlebarsjs.com/block_helpers.html im Abschnitt Blockhelfer
quelle
Arrays:
Wenn Sie Arrays von Objekten haben ... können Sie die untergeordneten Elemente durchlaufen:
Objekte:
Wenn Sie verschachtelte Objekte haben, können Sie mit auf das
key
übergeordnete Objekt zugreifen{{@../key}}
quelle
Ab Lenkerversion 4.0
quelle