Sencha Touch Grouper物业转换

时间:2012-09-12 23:13:20

标签: sencha-touch extjs sencha-touch-2

我有一个从Json商店读取的列表,其中包含int类型字段的分组器。该字段在下面的示例模型中称为“req”。但是,我不是按int值分组,而是想分配一个文本值,所以例如,如果是“1”,我会按“是”分组,如果是“0”,我会分组“否” ”。转换可以是硬编码的,因为它不会改变。我在哪里进行代码转换?谢谢你的帮助

Ext.define('MyApp.store.MyStore', {
    extend: 'Ext.data.Store',
    requires: [
        'MyApp.model.MyData'
    ],

    config: {
        model: 'MyApp.model.MyData',
        storeId: 'MyStore',
        proxy: {
            type: 'ajax',
            url: '/path/to/data.json',
            reader: {
                type: 'json',
                rootProperty: 'items'
            }
        },
        grouper: {
            property: 'req',
            sortProperty: 'req'
        },
        groupDir: 'DESC'
    }
});

型号:

Ext.define('Mypp.model.MyModel', {
    extend: 'Ext.data.Model',
    config: {
        fields: [
            {
                name: 'example',
                type: 'string'
            },
        {
                name: 'req',
                type: 'int'
            }
        ]
    }
});

1 个答案:

答案 0 :(得分:0)

使用convert()函数向模型添加计算字段:

Ext.define('Mypp.model.MyModel', {
    extend: 'Ext.data.Model',
    config: {
        fields: [
            {
                name: 'example',
                type: 'string'
            },
            {
                name: 'req',
                type: 'int'
            },
            {
                name: 'reqDisplay',
                type: 'string',
                convert: function (value, record) {
                    if (value == null) {
                         var req = record.get('req');
                         value = req ? 'Yes' : 'No'
                    }
                    return value;
                 }
            }
        ]
    }
});

...而是使用它

    grouper: {
        property: 'reqDisplay',
        sortProperty: 'reqDisplay'
    },

干杯,奥列格