web-dev-qa-db-ja.com

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>

予想どおり、idのすべての要素のtitleおよびmyCollectionフィールドにアクセスして、選択を生成できます。また、selectの外側では、externalValue変数が正しく出力されます( "myExternalValue")。

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

私の質問は、ループ内からそれぞれhandlebars.jsのスコープ外の変数にアクセスするにはどうすればよいですか?

169
lucke84

試してみる

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

../パスセグメントは、必要な親テンプレートスコープを参照します。

402
spliter

または、次のような絶対パスを使用できます。

<option value="{{id}}">{{title}} {{@root.user.path.to.externalValue}}</option>
8
kidkkr