Jsrender: Kann nicht auf eine Variable in {{for}} zugreifen

Erstellt am 15. Juni 2012  ·  3Kommentare  ·  Quelle: BorisMoore/jsrender

Hallo Boris,

Folgendes übergebe ich an die Vorlage
{'Artikel': Artikel, Rang: wahr}

items ist ein Array von Objekten

In meiner Vorlage habe ich

{{für Artikel}}
{{if (Rang)}}{{:#index}}{{/if}}
{{/zum}}

Aber es scheint, dass die Variable 'ranked' nichts tut.

Hilfreichster Kommentar

Innerhalb von {{for items}} ist der Datenkontext (aktuelles Datenelement) das Element des Elementarrays.
Sie testen also auf einen Artikel mit item.ranked == true. Ihre bewertete Eigenschaft befindet sich jedoch auf dem Objekt, das die Eigenschaft items besitzt, nicht auf dem Element. Vielleicht willst du

{{for items}}
   {{if #parent.parent.data.ranked)}}{{:#index}}{{/if}}
{{/for}}

Ein anderer Ansatz, den Sie verwenden können, besteht darin, eine Vorlagenvariable zu erstellen, die die geordnete Eigenschaft kopiert und über den Vorlagenkontext für die verschachtelten Vorlagen zugänglich macht:

{{for items ~isRanked=ranked}}
   {{if ~isRanked)}}{{:#index}}{{/if}}
{{/for}}

Dateneigenschaften werden in verschachtelten Kontexten nicht automatisch verfügbar gemacht. (Es gibt keinen with (data) {} Block in JsRender). Vorlagenparameter bieten jedoch eine bessere Möglichkeit, sich für die Bereitstellung von Variablen für verschachtelte Kontexte zu entscheiden...

Alle 3 Kommentare

Innerhalb von {{for items}} ist der Datenkontext (aktuelles Datenelement) das Element des Elementarrays.
Sie testen also auf einen Artikel mit item.ranked == true. Ihre bewertete Eigenschaft befindet sich jedoch auf dem Objekt, das die Eigenschaft items besitzt, nicht auf dem Element. Vielleicht willst du

{{for items}}
   {{if #parent.parent.data.ranked)}}{{:#index}}{{/if}}
{{/for}}

Ein anderer Ansatz, den Sie verwenden können, besteht darin, eine Vorlagenvariable zu erstellen, die die geordnete Eigenschaft kopiert und über den Vorlagenkontext für die verschachtelten Vorlagen zugänglich macht:

{{for items ~isRanked=ranked}}
   {{if ~isRanked)}}{{:#index}}{{/if}}
{{/for}}

Dateneigenschaften werden in verschachtelten Kontexten nicht automatisch verfügbar gemacht. (Es gibt keinen with (data) {} Block in JsRender). Vorlagenparameter bieten jedoch eine bessere Möglichkeit, sich für die Bereitstellung von Variablen für verschachtelte Kontexte zu entscheiden...

Ich habe eine jquery-Datentabelle, in der ich untergeordnete Zeilen mit js rendern zeige. Für beide Spalten in der Tabelle stammen die Daten aus 2 verschiedenen Arrays. Wie soll ich also die Daten in 2 separate Zeilen aufteilen, die derzeit als kommagetrennte Liste angezeigt werden?

@ Krish2215 : Dies ist zum Melden von Fehlern und anderen Problemen, nicht für allgemeine https://stackoverflow.com/questions/tagged/jsrender ausprobieren

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen