通过变量名获取属性

问题描述 投票:4回答:2

我想使用emberjs模板渲染表格。该表应该解析要动态呈现的列:

<table>
    {{#each item in this.items}}
        <tr>
            {{#each colName in this.columnNames}}
                <td>{{item.[colName]}}</td>
            {{/each}}
        </tr>
    {{/each}}
</table>

但是,我认为把手试图访问物品的colName属性。如何动态访问属性?

ember.js handlebars.js
2个回答
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绑定的理解是正确的,那么当itemcolName被改变时,帮助器应该重新渲染。


0
投票
{{#each item in items}}
<tr>
{{#each colName in columnNames}}
    <td>{{get item colName}}</td>
{{/each}}
</tr>
{{/each}}

使用get助手。谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.