Ich versuche, den Index eines Elements in einem Array innerhalb einer Lenkervorlage anzugeben:
{
people: [
{"name":"Yehuda Katz"},
{"name":"Luke"},
{"name":"Naomi"}
]
}
mit diesem:
<ul id="luke_should_be_here">
{{people[1].name}}
</ul>
Wenn dies nicht möglich ist, wie würde ich einen Helfer schreiben, der auf ein bestimmtes Element innerhalb des Arrays zugreifen kann?
javascript
handlebars.js
lukemh
quelle
quelle
Expecting 'ID'
erhalte eine Fehlermeldung mit {{user.links.websites.1}} oder {{user.links.websites.0}}{{ websites.[0] }}
.Das Folgende mit einem zusätzlichen Punkt vor dem Index funktioniert wie erwartet. Hier sind die eckigen Klammern optional, wenn auf den Index eine andere Eigenschaft folgt:
Die eckigen Klammern sind jedoch erforderlich in:
In letzterem Fall würde die Verwendung der Indexnummer ohne eckige Klammern eine ergeben:
Nebenbei bemerkt: Die Klammern werden (auch) für die segmentliterale Syntax verwendet , um auf tatsächliche Bezeichner (keine Indexnummern) zu verweisen, die ansonsten ungültig wären. Weitere Details finden Sie unter Was ist eine gültige Kennung?
(Getestet mit Lenker in YUI.)
2.xx Update
Sie können jetzt den
get
Helfer dafür verwenden:Wenn Sie jedoch eine Fehlermeldung erhalten, dass der Index eine Zeichenfolge sein muss, gehen Sie wie folgt vor:
quelle
{{#with people.1}}
Lösung hat bei mir mit funktioniertcom.github.jknack:handlebars:4.1.2
.quelle
Wenn nicht dokumentierte Funktionen nicht Ihr Spiel sind, können Sie dies hier erreichen:
Dann in einer Vorlage
Ich habe das Obige geschrieben, bevor ich es bekommen habe
Ich kann nicht sehen, dass jemand mit dem Lenker zu weit kommt, ohne eigene Helfer zu schreiben.
quelle
Wenn Sie dynamische Variablen verwenden möchten
Das wird nicht funktionieren:
Sie müssen tun:
Siehe Lenker-Suchhilfe und Unterausdrücke für Lenker .
quelle
Bitte versuchen Sie dies, wenn Sie zuerst / zuletzt abrufen möchten.
quelle
Während Sie ein Array mit schleifen
each
und anderen Array im Kontext des aktuellen Elements durchlaufen, tun Sie dies folgendermaßen.Hier sind die Beispieldaten.
Hier ist der Lenker, um das erste Element im
attr
Array zu erhalten.Dies wird ausgegeben
quelle
this
stattthis.[0]
Die folgende Syntax kann auch verwendet werden, wenn das Array nicht benannt ist (nur das Array wird an die Vorlage übergeben):
quelle
In meinem Fall wollte ich auf ein Array in einem benutzerdefinierten Helfer wie folgt zugreifen:
Was nicht funktioniert hat, aber die von @julesbou vorgeschlagene Antwort hat funktioniert.
Arbeitscode:
Hoffe das hilft! Prost.
quelle