拥有应代表表格的视图,具有columns
和rows
:
App.ListView = Ember.View.extend({
templateName: 'list',
columns: ['t1', 't2', 't3'],
rows: [
{ t1: 'one', t2: 'two', t3: 'three' },
{ t1: 'two', t2: 'one', t3: 'seven' }
]
});
- 分别是模板:
<table>
<thead>
<tr>
{{#each columns}}
<th>{{this}}</th>
{{/each}}
</tr>
</thead>
<tbody>
{{#each rows}}
<tr>
{{#each ../columns}}
<td>does nothing: {{this}}</td>
{{/each}}
</tr>
{{/each}}
<tbody>
<table>
...也可以找到on jsfiddle:jsfiddle.net/nWnf2
当嵌套在行中时,我显然不能迭代列。根本不会触发{{#each ../columns}}
。这是为什么?什么是更好的方法?
答案 0 :(得分:4)
Ember并不真正支持Handlebars的文件路径标识符。但是,您可以通过view.columns
访问。
<table>
<thead>
<tr>
{{#each columns}}
<th>{{this}}</th>
{{/each}}
</tr>
</thead>
<tbody>
{{#each rows}}
<tr>
{{#each view.columns}}
<td>does nothing: {{this}}</td>
{{/each}}
</tr>
{{/each}}
<tbody>
<table>
查看您的代码段,我建议您使用{{#collection}}
代替{{#each}}
,它不会缓解该问题但会使您的代码更清晰(IMO)。