37

Handlebars.js テンプレートのルート コンテキストにアクセスするための組み込みメソッドはありますか? ほとんどのヘルパーはネストされたコンテキストを追加しており、それにアクセスするにはそのコンテキストの変数の前に ../ を記述する必要がありますが、たくさんの each や if などがある場合、これはあまり実用的ではありません。

4

4 に答える 4

74

@root を使用します。これは handlebars-v2.0.0.js にあります

{{@root.somthing.nested_somthing}}
于 2014-09-05T15:11:55.017 に答える
8

ループ (例: each) でコンテキストを変更すると、テンプレートのルート コンテキストにアクセスする可能性はありません。詳細情報

ただし、以前のコンテキストにアクセスする可能性があります'../'

# app/assets/javascript/contents.coffee
body = HandlebarsTemplates['my_hbs_template']({
  view:{
    registryName: 'foo',
    data: {items: {x: 'x'}}
    }
  })

テンプレート:

<!-- app/assets/javascript/templates/my_content.hbs -->
<table class="table">
  <tbody>

  {{#each view.data.items}}
    <tr>
      <td>{{@key}}</td>
      <td>
        Hello from {{../view.registryName}}
      </td>
    </tr>
  {{/each}}
  </tbody>
</table>

詳細については、http://handlebarsjs.com/#pathsを確認してください

于 2013-11-15T11:37:34.190 に答える
0

まだありません!

数回提案されており、オープンチケットがあります: https://github.com/wycats/handlebars.js/issues/392

彼らの主張は、それは必須ではないということですが、それが目に見えるパフォーマンスのオーバーヘッドのない安価な修正である場合、それを含めることができない理由がわかりません.

于 2013-07-30T11:15:18.103 に答える