如何在把手中使用另一个变量指定对象键

时间:2015-04-16 16:35:33

标签: ember.js handlebars.js

从Ember模板我试图使用键的变量获取对象值。我该怎么做?

我试过以下内容:

<table>
    {{#each record in model}}
    <tr>
        {{#each col in table.cols}}
            <td>{{record[col.field]}}</td>
        {{/each}}
    </tr>
    {{/each}}
</table>

变量:

var table = {           
   cols: [{
        header: 'Date/Time',
        field: 'date'
    },{
        header: 'Address',
        field: 'address'
    },{
        header: 'Type',
        field: 'type'
    }]
};

var model = [{
    id: 1,
    date: '8/18/85',
    address: '123 abc st',
    type: 'Unique'
}, {
    id: 2,
    date: '9/8/95',
    address: '123 abc st',
    type:'Foreign'
}]

在构建时,我收到以下错误

Parse error on line 25: ...} {{record[col.field]}} ----------------------^ Expecting 'STRING', 'NUMBER', 'ID', 'DATA', got 'INVALID' Error: Parse error on line 25: ...} {{record[col.field]}} ----------------------^ Expecting 'STRING', 'NUMBER', 'ID', 'DATA', got 'INVALID'

1 个答案:

答案 0 :(得分:4)

我不知道内置方式,但您可以创建模板助手来为您执行此操作。

这样的事情:

Ember.Handlebars.helper('array-value', function(array, key, options) {
  return array[key];
});

在您的模板中,您可以致电:

{{ array-value record col.field }}

这是jsbin example