4

我在开发 extjs 应用程序(拉力赛应用程序)时发现,有时我需要从记录中获取的数据在 record.raw 中,而不是在 record.data 中。两者有什么区别,为什么会这样?

编辑 - 添加示例(可排序的父列 - 我的其他问题之一)

{text: 'Parent', dataIndex: 'Parent',
    doSort: function(state) {
        var ds = this.up('grid').getStore();
        var field = this.getSortParam();
        ds.sort({
            property: field,
            direction: state,
            sorterFn: function(v1, v2){
                if (v1.raw.Parent) {
                    v1 = v1.raw.Parent.Name;
                } else {
                    v1 = v1.data.Name;
                }

                if (v2.raw.Parent) {
                    v2 = v2.raw.Parent.Name;
                } else {
                    v2 = v2.data.Name;
                }
                return v1.localeCompare(v2);
            }
        });
    },
    renderer: function(value, meta, record) {
        var ret = record.raw.Parent;
        if (ret) {
            return ret.Name;
        } else {
            meta.tdCls = 'invisible';
            return record.data.Name;
        }
    }
},
4

1 回答 1

9

中的数据raw是尚未转换为fields配置中指定的类型的原始数据。一旦 a 进行了Reader该转换,转换后的数据就会存储在 中data,该数据基于fields.

您可以在此处从文档中了解更多信息:http: //docs.sencha.com/extjs/4.2.1/#! /api/Ext.data.Model

于 2013-07-24T17:25:29.630 回答