Handlebars: como acessar variaveis do contexto pai de dentro de um partial
Suponha que você possui a seguinte estrutura:
{
"album": {
"artist": "The Beatles",
"name": "Please Please Me",
"tracks": [
{"name":"I Saw Her Standing There"},
{"name":"Misery"}
]
}
}
E queira gerar o seguinte html
<ol>
<li>The Beatles - I Saw Her Standing There</li>
<li>The Beatles - Misery</li>
</ol>
Em Handlebars você pode fazer assim:
{{#with album}}
<ol>
{{#each this.tracks}}
<li>{{../artist}} - {{this.name}}</li>
{{/each}}
</ol>
{{/with}}
Porém, se você quiser separar cada item da lista num partial chamado track, tipo:
<li>{{../artist}} - {{this.name}}</li>
E depois fazer isso:
{{#with album}}
<ol>
{{#each this.tracks}}
{{> track}}
{{/each}}
</ol>
{{/with}}
Não vai funcionar porque os partials no handlebars não conseguem acessar o contexto do pai.
A partir da versão v2.0.0-alpha.1 uma maneira de se obter variáveis do contexto do pai é possível, a maneira de se fazer isso então seria:
{{#with album}}
<ol>
{{#each this.tracks}}
{{> track artistName=../artist}}
{{/each}}
</ol>
{{/with}}
e o partial
<li>{{artistName}} - {{this.name}}</li>
Sucesso!