Ich habe eine Vorlage für handlebars.js, genau wie folgt:
{{externalValue}}
<select name="test">
{{#each myCollection}}
<option value="{{id}}">{{title}} {{externalValue}}</option>
{{/each}}
</select>
Und das ist die generierte Ausgabe:
myExternalValue
<select name="test">
<option value="1">First element </option>
<option value="2">Second element </option>
<option value="3">Third element </option>
</select>
Wie erwartet kann ich auf die Felder id
und title
jedes Elements von zugreifen myCollection
, um meine Auswahl zu generieren. Außerhalb der Auswahl wird meine externalValue
Variable korrekt gedruckt ("myExternalValue").
Leider wird in den Texten der Optionen der externalValue
Wert nie ausgedruckt.
Meine Frage ist: Wie kann ich innerhalb der Schleife auf eine Variable außerhalb des Bereichs der handlebars.js zugreifen?
javascript
templates
scope
each
handlebars.js
Glück 84
quelle
quelle
../
wiederholt verwenden, je nachdem, wie viele Bereiche von dem Wert entfernt sind, den Sie haben.Oder Sie können einen absoluten Pfad wie folgt verwenden:
quelle
Ich habe viele Links zu 404 zur Dokumentation zu diesem Thema gesehen.
Ich aktualisiere es mit diesem, es funktioniert am 1. April 2020 :
https://handlebarsjs.com/guide/expressions.html#path-expressions
Einige Helfer wie #with und #each ermöglichen es Ihnen, in verschachtelte Objekte einzutauchen. Wenn Sie ../ Segmente in Ihren Pfad aufnehmen, wechseln die Lenker wieder in den übergeordneten Kontext.
Obwohl der Name im Kontext eines Kommentars gedruckt wird, kann er dennoch zum Hauptkontext (dem Stammobjekt) zurückkehren, um das Präfix abzurufen.
WARNUNG
Der genaue Wert, in den ../ aufgelöst wird, hängt vom Helfer ab, der den Block aufruft. Die Verwendung von ../ ist nur erforderlich, wenn sich der Kontext ändert. Kinder von Helfern wie {{#each}} benötigen die Verwendung von ../, Kinder von Helfern wie {{#if}} nicht.
In diesem Beispiel beziehen sich alle oben genannten auf denselben Präfixwert, obwohl sie sich in verschiedenen Blöcken befinden. Dieses Verhalten ist neu ab Lenker 4, die Release Notes das vorherige Verhalten sowie den Migrationsplan zu diskutieren.
quelle