1

emberJSに出くわしたばかりで、次のWebアプリケーションで試してみる価値があると思いました。

私が実際にやろうとしているのは、オブジェクトのリストを2次元で表示することです(atmこれはテーブルにすることができます)。

私がこれまでに持っているもの:

<script type="text/x-handlebars">
<table width="100%" style="text-align:left">
  <tr>
    <th>
    </th>
    {{#each App.MyController.getColumnValues}}
      <th>{{this}}</th>
    {{/each}}
  </tr>
  {{#each App.MyController.getRowValues}}
    <tr>
      <th>{{this}}</th>
      {{#each App.MyController.getColumnValues}}
        {{view App.CountView rowBinding="this" columnBinding="../this"}}
      {{/each}}
    </tr>
  {{/each}}
</table>
</script>

そしてcountViewの場合:

<script type="text/x-handlebars" data-template-name="countView">
  <td>{{view.row}} - {{view.column}}</td>
</script>

ご覧のとおり、各セルに現在の列と行の値を含むテーブルが必要です。columnBindingを除いて、すべてが機能します。ハンドルバーのページで読んだように、{{../this}}は親テンプレートスコープに対処する方法です。2つの中括弧では(余分なビューを作成しなくても、これはかなりうまく機能します。しかし、後で関数を呼び出して列と行の値を渡し、(明確にするために)この時点でビューが良いと思いました。 。

親テンプレートスコープにアクセスしてcountViewに渡す方法はありますか?

4

1 に答える 1

2

混乱を避けるために{{each}}、この場合のように常にブロック内の変数を使用できます。次のようにしてみてください。

{{#each row in App.MyController.getRowValues}}
  <tr>
    <th>{{row}}</th>
    {{#each column in App.MyController.getColumnValues}}
      {{view App.CountView rowBinding="row" columnBinding="column"}}
    {{/each}}
  </tr>
{{/each}}

これが役立つかどうか教えてください...

于 2012-12-01T13:00:32.270 に答える