ember.js – 按变量名称获取属性

我想使用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被更改.

点赞