1

我刚刚偶然发现了 emberJS,并认为值得在我的下一个 Web 应用程序中尝试一下。

我实际上打算做的是以二维方式显示对象列表(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。正如我在 Handlebars 的页面 {{../this}} 上所读到的,它是解决父模板范围的方法。在两个花括号中(没有为其创建额外的视图,这工作得很好。但我稍后需要调用一个函数,将列和行值传递给它,并认为(为了使其清晰)此时视图会很好.

任何想法如何访问父模板范围并将其传递给 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 回答