2012-11-30 17 views
125

私はちょうどこのように、handlebars.jsテンプレートを持っている:アクセスHandlebars.jsの範囲外の変数各ループ

{{externalValue}} 

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

そして、これが生成され出力されます:として

myExternalValue 

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

予想通り、のすべての要素のidtitleフィールドにアクセスして選択を生成できます。選択外では、私のexternalValue変数が正しく出力されます( "myExternalValue")。

残念ながら、オプションのテキストでは、externalValueの値は決して出力されません。

私の質問は、ループ内のhandlebars.jsのスコープ外の変数にどのようにアクセスできますか?

いつもありがとうございます。

答えて

312

../パスセグメントは、あなたが望むものである必要があり、親テンプレートの範囲を参照する

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

を試してみてください。

+5

これは完璧に機能します。 :) – lucke84

+5

将来の読者がまだ私のような問題を抱えている場合は、[この回答](http://stackoverflow.com/a/12297980/149998)のコメントをご覧ください。この答えを見てからしばらく時間がかかりました。あなたが値から離れたスコープの数に応じて '../'を繰り返し使用する必要があるかもしれません。 – bcmcfc

+5

私は夢中になっていますか、このタイプの貴重な情報はハンドルバーの文書には見つかりませんでしたか? – Jesse