在Sencha Touch中存储自定义排序

Nic*_*muz 4 sorting extjs sencha-touch

我有一个商店+模型,它连接到第三方插件(Ext.ux.TouchGridPanel).该插件使用相关映射正确调用商店的sort()方法.一切都很好,商店自己排序.但是,我更愿意在商店中添加客户排序.我尝试在我的模型中添加sortType字段:

Ext.regModel("Transactions", {
    fields: [
        {
            name: 'unit',
            type: 'string',
            sortType: function(value) {
                console.log('PRINT GDAMNIT');
                return 0;
            }
        },

        ...

    ]
});
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,并且不会调用sortType.

TLDR:如何为商店进行自定义排序?

mis*_*ves 6

您的商店需要添加一个分拣机,在调用sortType函数之前对该字段进行排序.

var store = new Ext.data.Store({ 
   model: 'Transactions',
   sorters: [
      {
        property: 'unit',
        direction: 'DESC'
      }
   ]}
);
Run Code Online (Sandbox Code Playgroud)

排序类型将字段的值转换为另一个值以确保正确排序.如果您没有对该字段进行排序,则没有理由调用该函数.您可以将sortDir添加到字段中,该字段将根据字段的类型将字段排序为升序/降序.