1

我有一个从 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'
            }
        ]
    }
});
4

1 回答 1

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'
    },

干杯,奥列格

于 2012-09-13T05:20:56.010 回答