我只是偶然发现了emberJS,并认为值得为我的下一个网络应用程序试用它。
我实际打算做的是以二维方式显示对象列表(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>
正如您所看到的,我想要一个表,在每个单元格中包含当前列AND行的值。 除了columnBinding之外,一切正常。正如我在Handlebars的页面上读到的那样{{../this}}是解决父模板范围的方法。在两个花括号中(没有为它创建额外的视图,这非常好用。 但是我后来需要调用一个函数来传递它的列和行值并想到(为了清楚)一个视图在这一点上会很好。
如何访问父模板范围并将其传递给countView?
答案 0 :(得分: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}}
如果这有帮助,请告诉我......