1

handlebars.js で部分テンプレートをレンダリングするときに、プロパティをコンテキストに追加することはできますか?

{{> MyTemplate { X: Y }}}

どの「マスター」テンプレートから使用されるかに応じて、いくつかの値を挿入する必要がある共有テンプレートがあります。

4

1 に答える 1

2

パーシャルへの呼び出しの中で直接これを行うことはできません。ただし、ラッピング コンテキストで既にコンテキストを使用できる場合は、コンテキストをパーシャルに渡すことができます。

コンテキストにデータを「埋め込む」ために、次のようにプライベート変数を設定するヘルパーを使用できます。

<div>
  {{makeVar 'mode' 33}}
  <span>mode: {{@mode}}</span><!-- will return mode: 33 -->
</div>

次に、コンテキストから動的なものをヘルパーに渡すことで、現在のコンテキストに追加される makeVar値を計算できます。@mode

コンテキスト自体を変更したり、コンテキストをその場で計算されたデータとマージしたりすることもできます。(注意してください:そのようにすると、コンテキストの下流のユーザーにも影響します。)

したがって、このようにパーシャルを呼び出し、@modeそれに応じてラッピング コンテキストを設定することができます。

<div>
  {{> myPartial .}}<!-- inside partial, @mode is accessible, along with context -->
</div>

参照: http://jsfiddle.net/mcw0933/Cy64X/

于 2013-11-05T18:41:19.117 に答える