2012-11-30 16 views
125

Ho un modello handlebars.js, proprio come questo:accedere a una variabile al di fuori della portata di una Handlebars.js ogni ciclo

{{externalValue}} 

<select name="test"> 
    {{#each myCollection}} 
     <option value="{{id}}">{{title}} {{externalValue}}</option> 
    {{/each}} 
</select> 

E questo è l'output generato:

myExternalValue 

<select name="test"> 
     <option value="1">First element </option> 
     <option value="2">Second element </option> 
     <option value="3">Third element </option> 
</select> 

Come atteso, posso accedere ai campi id e title di ogni elemento di myCollection per generare la mia selezione. E al di fuori della selezione, la mia variabile externalValue è stampata correttamente ("myExternalValue").

Sfortunatamente, nei testi delle opzioni, il valore externalValue non viene mai stampato.

La mia domanda è: come posso accedere a una variabile al di fuori dell'ambito di handlebars.js dal loop?

Come sempre, grazie in anticipo.

risposta

312

Prova

<option value="{{id}}">{{title}} {{../externalValue}}</option> 

Il segmento di percorso ../ fa riferimento al modello di portata genitore che dovrebbe essere ciò che si desidera.

+5

Cheers uomo, questo funziona perfettamente. :) – lucke84

+5

Se i futuri lettori hanno ancora problemi come me, dai un'occhiata al commento di [questa risposta] (http://stackoverflow.com/a/12297980/149998) qui. Mi ci è voluto un po 'dopo aver visto questa risposta per vederlo. Potrebbe essere necessario usare '../' ripetutamente a seconda di quanti ambiti si allontanano dal valore che si è. – bcmcfc

+5

Sono pazzo o questo tipo di informazione preziosa non si trova da nessuna parte sui documenti manubri ??? – Jesse

Problemi correlati