Handlebars.js: Contexte global non disponible dans une boucle ?

Créé le 19 févr. 2012  ·  3Commentaires  ·  Source: handlebars-lang/handlebars.js

Si j'ai le contexte suivant :

{{model: {username: 'sontek'}, timezones: ['a', 'b', 'c']} 

et je fais:

{{#each timezones }}
     {{model.username}}
{{/each}}

le modèle n'existe pas, je ne peux donc pas accéder au nom d'utilisateur.

Commentaire le plus utile

C'est dans la doc sous "Chemins"

Les chemins de guidon imbriqués peuvent également inclure des segments ../, qui évaluent leurs chemins par rapport à un contexte parent.

<h1>Comments</h1>

<div id="comments">
  {{#each comments}}
  <h2><a href="/posts/{{../permalink}}#{{id}}">{{title}}</a></h2>
  <div>{{body}}</div>
  {{/each}}
</div>

Même si le lien est imprimé dans le contexte d'un commentaire, il peut toujours revenir au contexte principal (la publication) pour récupérer son lien permanent.
Le segment de chemin ../ référence à la portée du modèle parent, pas à un niveau supérieur dans le contexte. C'est parce que les assistants de bloc peuvent invoquer un bloc avec n'importe quel contexte, donc la notion de "un niveau supérieur" n'est pas particulièrement significative, sauf en tant que référence à la portée du modèle parent.

Tous les 3 commentaires

J'ai découvert que je pouvais utiliser ../model.username mais je ne pouvais pas trouver de documentation à ce sujet, je viens de le trouver dans certains rapports de bogues... Est-ce documenté quelque part?

C'est dans la doc sous "Chemins"

Les chemins de guidon imbriqués peuvent également inclure des segments ../, qui évaluent leurs chemins par rapport à un contexte parent.

<h1>Comments</h1>

<div id="comments">
  {{#each comments}}
  <h2><a href="/posts/{{../permalink}}#{{id}}">{{title}}</a></h2>
  <div>{{body}}</div>
  {{/each}}
</div>

Même si le lien est imprimé dans le contexte d'un commentaire, il peut toujours revenir au contexte principal (la publication) pour récupérer son lien permanent.
Le segment de chemin ../ référence à la portée du modèle parent, pas à un niveau supérieur dans le contexte. C'est parce que les assistants de bloc peuvent invoquer un bloc avec n'importe quel contexte, donc la notion de "un niveau supérieur" n'est pas particulièrement significative, sauf en tant que référence à la portée du modèle parent.

Merci beaucoup @sontek et @spadgos

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

Questions connexes

jlubean picture jlubean  ·  8Commentaires

fcpauldiaz picture fcpauldiaz  ·  4Commentaires

nknapp picture nknapp  ·  3Commentaires

LengYXin picture LengYXin  ·  3Commentaires

morgondag picture morgondag  ·  5Commentaires