带夹具适配器的灰烬表

时间:2014-04-25 01:12:46

标签: ember.js ember-data fixtures ember-table

我正在尝试使用Ember-Data和Fixtures加载一个ember表。我可以看到表中生成的行,但它们是空的。请注意,它确实生成了正确的行数,它只是不显示数据。如果我使用数组代替,一切正常。此外,如果我删除该表并执行{{#each}},数据也会显示正常。 任何想法都会受到欢迎! 感谢

这是html:

    <div class="table-container">
        {{table-component
        hasFooter=false
        columnsBinding="columns"
        contentBinding="content"}}
    </div>

这是控制器:

App.CustomersController = Ember.ArrayController.extend({
    numRows: 1,
    columns: function() {
    var nameColumn, typeColumn, phoneColumn, identifierColumn;
    nameColumn = Ember.Table.ColumnDefinition.create({
        columnWidth: 150,
        textAlign: 'text-align-left',
        headerCellName: 'Name',
        getCellContent: function (row) {
            return row.name;
        }

    });
    typeColumn = Ember.Table.ColumnDefinition.create({
        columnWidth: 150,
        textAlign: 'text-align-left',
        headerCellName: 'Type',
        getCellContent: function (row) {
            return row.type;
        }

    });
    phoneColumn = Ember.Table.ColumnDefinition.create({
        columnWidth: 100,
        textAlign: 'text-align-left',
        headerCellName: 'Phone',
        getCellContent: function (row) {
            return row.phone;
        }

    });
    identifierColumn = Ember.Table.ColumnDefinition.create({
        columnWidth: 150,
        textAlign: 'text-align-left',
        headerCellName: 'ID',
        getCellContent: function (row) {
            return row.identifier;
        }

    });
    console.log('in columns func');
    console.log(this.get('content'));
    return [nameColumn, typeColumn, phoneColumn, identifierColumn];
}.property(),

content: function() {
    /*var temp= [
        {
            id: 1,
            name: 'Seller',
            type: 'Supermarket',
            phone: '1-800-Sell',
            identifier: '12345'
        },
        {
            id: 2,
            name: 'Sell',
            type: 'Supermarket',
            phone: '1-800-Sell2',
            identifier: '12356'
        }];
    return temp;*/

return this.store.toArray
    }.property('numRows')
});

(注意上面也包含了有效的注释数组)

模特:

App.Customers = DS.Model.extend({
name: DS.attr('string'),
type: DS.attr('string'),
phone: DS.attr('string'),
identifier: DS.attr('string')
});

1 个答案:

答案 0 :(得分:0)

使用数组时,对象将变为实际对象,而不是Ember.Object。你应该可以使用:

getCellContent: function (row) {
  return row.get('name');
}    

正确选择每一行的数据。