Sencha touch 动态更改商店上的分拣机?

Sencha touch 动态更改商店上的分拣机?,sencha-touch,sencha-touch-2,Sencha Touch,Sencha Touch 2,我有一家商店,我想在那里预先定义几套分拣机。对于第一种情况,我根据band rank lastName定义了排序顺序 { property: 'rank', direction: 'ASC' }, { property: 'lastName', direction: 'ASC' } 第二,我希望分类机按年份、乐队、姓氏分类: { property:

我有一家商店,我想在那里预先定义几套分拣机。对于第一种情况,我根据band rank lastName定义了排序顺序

        {
        property: 'rank',
        direction: 'ASC'
        },
        {
        property: 'lastName',
        direction: 'ASC'
        }

第二,我希望分类机按年份、乐队、姓氏分类:

    {
    property: 'year',
    direction: 'ASC'
    },
    {
    property: 'band',
    direction: 'ASC'
    },
    {
    property: 'lastName',
    direction: 'ASC'
    }
我怎样才能在我的商店里把第一台分拣机换成第二台,然后根据需要把它换回来

下面是代码的其余部分:

BandMemberStore.js:

Ext.define('Sencha.store.BandMemberStore', {
    extend: 'Ext.data.Store',

    requires: [],

    config: {
        model: 'Sencha.model.BandMember',
        autoLoad: true,
        defaultRootProperty: 'items',

        proxy: {
            type: 'ajax',
            url: 'bands.json',
            reader: {
                type: 'json',
                rootProperty: 'items'
            }
        },
    sorters : [
        {
        property: 'rank',
        direction: 'ASC'
        },
        {
        property: 'lastName',
        direction: 'ASC'
        }
    ]
    },

    load: function () {
        this.callParent(arguments);
    }
});
模型:

Ext.define('Sencha.model.BandMember'    , {
    extend: 'Ext.data.Model',

    config: {
        fields: [
            {name: 'rank', type: 'int'},
            {name: 'band', type: 'string'},
            {name: 'year', type: 'int'},
            {name: 'firstName', type: 'string'},
            {name: 'lastName', type: 'string'},
            {
                name: 'fullName',
                type: 'string',
                convert: function (value, record) {

                    firstName = record.data.firstName;
                    lastName = record.data.lastName;
                    fullName = firstName + " " + lastName;
                    return fullName;
                }
            }
        ]
    },
    load: function () {
        this.callParent(arguments);
    }
});
app.js:

Ext.Loader.setConfig({enabled: true});

Ext.application({
    name: "Sencha",

    models: ['BandMember'],
    stores: ['BandMemberStore'],
    views: [],
    controllers: [],

    launch: function () {
        console.log("Launching");

        var aList = Ext.create("Ext.List", {
            fullscreen: true,
            store: 'BandMemberStore',
            itemTpl: "{rank} / {year} / {band} / {lastName}, {firstName} - {fullName}"
        });
        Ext.Viewport.add(aList);
    }
});
bands.json:

{"items": [
    { "rank": 3, "band": "Eagles" , "year": "1971", "firstName": "Glenn", "lastName": "Fry" },
    { "rank": 3, "band": "Eagles" , "year": "1971", "firstName": "Don", "lastName": "Henley" },
    { "rank": 3, "band": "Eagles" , "year": "1971", "firstName": "Joe", "lastName": "Walsh" },
    { "rank": 3, "band": "Eagles" , "year": "1971", "firstName": "Timothy", "lastName": "Schmit" },

    { "rank": 2, "band": "Beatles" , "year": "1960", "firstName": "John", "lastName": "Lennon" },
    { "rank": 2, "band": "Beatles" , "year": "1960", "firstName": "Paul", "lastName": "McCartney" },
    { "rank": 2, "band": "Beatles" , "year": "1960", "firstName": "George", "lastName": "Harrison" },
    { "rank": 2, "band": "Beatles" , "year": "1960", "firstName": "Ringo", "lastName": "Starr" },
    { "rank": 1, "band": "Rolling Stones" , "year": "1962", "firstName": "Mick", "lastName": "Jaggar" },
    { "rank": 1, "band": "Rolling Stones" , "year": "1962", "firstName": "Keith", "lastName": "Richards" },
    { "rank": 1, "band": "Rolling Stones" , "year": "1962", "firstName": "Charlie", "lastName": "Watts" },
    { "rank": 1, "band": "Rolling Stones" , "year": "1962", "firstName": "Ron", "lastName": "Wood" },
]}
var-sorters1=[{
属性:“秩”,
方向:“ASC”
},
{
属性:“lastName”,
方向:“ASC”
}],
分拣机2=[{
物业:'年',
方向:“ASC”
},
{
属性:'band',
方向:“ASC”
},
{
属性:“lastName”,
方向:“ASC”
}],
store=Ext.getStore('YourStoreIdHere');
//使用第一个分拣机
储存、分拣(分拣机1);
//使用第二台分拣机
储存、分拣(分拣机2);
//或者你也可以直接更换分拣机
仓库.设置分拣机(分拣机2);
var-sorters1=[{
属性:“秩”,
方向:“ASC”
},
{
属性:“lastName”,
方向:“ASC”
}],
分拣机2=[{
物业:'年',
方向:“ASC”
},
{
属性:'band',
方向:“ASC”
},
{
属性:“lastName”,
方向:“ASC”
}],
store=Ext.getStore('YourStoreIdHere');
//使用第一个分拣机
储存、分拣(分拣机1);
//使用第二台分拣机
储存、分拣(分拣机2);
//或者你也可以直接更换分拣机
仓库.设置分拣机(分拣机2);