Handlebars.js: Contexto global não disponível em um loop?

Criado em 19 fev. 2012  ·  3Comentários  ·  Fonte: handlebars-lang/handlebars.js

Se eu tiver o seguinte contexto:

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

e eu faço:

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

o modelo não existe, então não consigo acessar o nome de usuário.

Comentários muito úteis

Está nos documentos em "Caminhos"

Os caminhos de barras de apoio aninhados também podem incluir ../ segmentos, que avaliam seus caminhos em relação a um contexto pai.

<h1>Comments</h1>

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

Mesmo que o link seja impresso enquanto estiver no contexto de um comentário, ele ainda pode voltar ao contexto principal (a postagem) para recuperar seu permalink.
O segmento de caminho ../ referência ao escopo do modelo pai, não um nível acima no contexto. Isso ocorre porque os auxiliares de bloco podem invocar um bloco com qualquer contexto, então a noção de "um nível acima" não é particularmente significativa, exceto como uma referência ao escopo do modelo pai.

Todos 3 comentários

Descobri que posso usar ../model.username, mas não consigo encontrar documentos sobre isso, apenas encontrei em alguns relatórios de bug ... Isso está documentado em algum lugar?

Está nos documentos em "Caminhos"

Os caminhos de barras de apoio aninhados também podem incluir ../ segmentos, que avaliam seus caminhos em relação a um contexto pai.

<h1>Comments</h1>

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

Mesmo que o link seja impresso enquanto estiver no contexto de um comentário, ele ainda pode voltar ao contexto principal (a postagem) para recuperar seu permalink.
O segmento de caminho ../ referência ao escopo do modelo pai, não um nível acima no contexto. Isso ocorre porque os auxiliares de bloco podem invocar um bloco com qualquer contexto, então a noção de "um nível acima" não é particularmente significativa, exceto como uma referência ao escopo do modelo pai.

Muito obrigado @sontek e @spadgos

Esta página foi útil?
0 / 5 - 0 avaliações