我想使用emberjs模板渲染表格。该表应该解析要动态呈现的列:
<table>
{{#each item in this.items}}
<tr>
{{#each colName in this.columnNames}}
<td>{{item.[colName]}}</td>
{{/each}}
</tr>
{{/each}}
</table>
但是,我认为把手会尝试访问项目的属性colName
。如何动态访问该属性?
答案 0 :(得分:2)
更新:正如Visualize在评论中指出的那样,现在有一个native get
helper。您应该优先考虑下面的实现(可能无法使用较新版本的Ember正确更新。)
我不确定Handlebars是否能够动态解析这样的变量(至少开箱即用)。我可能会写自己的帮手。
Ember.Handlebars.helper('getProperty', function(object, property, options) {
return Ember.get(object, property);
});
然后在你的模板中:
{{#each item in items}}
<tr>
{{#each colName in columnNames}}
<td>{{getProperty item colName}}</td>
{{/each}}
</tr>
{{/each}}
如果我对Ember绑定的理解是正确的,那么帮助器应该在item
或colName
被更改的任何时候重新渲染。
答案 1 :(得分:0)
{{#each item in items}}
<tr>
{{#each colName in columnNames}}
<td>{{get item colName}}</td>
{{/each}}
</tr>
{{/each}}
使用get
助手。
谢谢。