Jsrender: Impossible d'accéder à une variable dans {{for}}

Créé le 15 juin 2012  ·  3Commentaires  ·  Source: BorisMoore/jsrender

Salut Boris,

Je passe ce qui suit au modèle
{'éléments' : éléments, classés : vrai}

items est un tableau d'objets

Dans mon modèle, j'ai

{{pour les articles}}
{{if (classé)}}{{:#index}}{{/if}}
{{/pour}}

Mais il semble que la variable "classée" ne fasse rien.

Commentaire le plus utile

Dans le {{for items}}, le contexte de données (élément de données actuel) est l'élément du tableau items.
Vous testez donc un élément avec item.ranked == true. Mais votre propriété classée est sur l'objet qui a la propriété items, pas sur l'élément. Peut-être que tu veux

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

Une autre approche que vous pouvez utiliser consiste à créer une variable de modèle qui copie la propriété classée et la rend accessible aux modèles imbriqués via le contexte du modèle :

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

Les propriétés des données ne sont pas automatiquement exposées dans les contextes imbriqués. (Il n'y a pas with (data) {} bloc

Tous les 3 commentaires

Dans le {{for items}}, le contexte de données (élément de données actuel) est l'élément du tableau items.
Vous testez donc un élément avec item.ranked == true. Mais votre propriété classée est sur l'objet qui a la propriété items, pas sur l'élément. Peut-être que tu veux

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

Une autre approche que vous pouvez utiliser consiste à créer une variable de modèle qui copie la propriété classée et la rend accessible aux modèles imbriqués via le contexte du modèle :

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

Les propriétés des données ne sont pas automatiquement exposées dans les contextes imbriqués. (Il n'y a pas with (data) {} bloc

J'ai une table de données jquery où j'affiche des lignes enfants à l'aide de js render. Pour les deux colonnes de la table, les données proviennent de 2 tableaux différents. Alors, comment dois-je diviser les données en 2 lignes distinctes qui s'affichent actuellement sous forme de liste séparée par des virgules

@Krish2215 : Ceci est pour signaler les bogues et autres problèmes, pas pour les questions d'aide générales. Vous pouvez essayer stackoverflow https://stackoverflow.com/questions/tagged/jsrender. Mais vous aurez besoin de donner un contexte beaucoup plus précis, et idéalement un jsfiddle pour montrer votre difficulté exacte....

Cette page vous a été utile?
0 / 5 - 0 notes