我想使用emberjs模板渲染表格.该表应该解析要动态呈现的列:
<table>
{{#each item in this.items}}
<tr>
{{#each colName in this.columnNames}}
<td>{{item.[colName]}}</td>
{{/each}}
</tr>
{{/each}}
</table>
但是,我认为把手试图访问项目的属性colName.如何动态访问属性?
最佳答案 更新:正如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绑定的理解是正确的,那么帮助器应该在任何时候重新渲染项目或colName被更改.