设置新模型后,Store.load()不会执行

时间:2015-01-29 06:31:58

标签: extjs sencha-architect extjs5

我想使用myGridPanel.reconfigure(store,columns)重新配置GridPanel。我无法使用metachange事件,因为我需要单独调用元数据(后端约束)。 我调用了元数据,我收到了我需要的元数据,然后使用一组新字段和一个新代理(新网址)创建了一个新模型。我将模型设置为现有存储(绑定到我的gridPanel)然后调用store.loadPage(1)(因为我使用bufferedStore)和myGridPanel.reconfigure(store,meta.columns)。 我的问题是store.loadPage(1)没有发生。我不知道自己错过了什么......

我的商店看起来像这样:

Ext.define('Foo.store.Results', {
    extend: 'Ext.data.BufferedStore',

    requires: [
        'Foo.model.ResultRecord'
    ],

    config: {
        remoteFilter: true
    },

    constructor: function(cfg) {
        var me = this;
        cfg = cfg || {};
        me.callParent([Ext.apply({
            pageSize: 50,
            storeId: 'Results',
            autoLoad: false,
            model: 'Foo.model.ResultRecord',
            leadingBufferZone: 50,
            trailingBufferZone: 10
        }, cfg)]);
    }
}); 

我创建了一个这样的新模型:

createResultModel: function(url,fields) {
        console.log('createResultsModel called');
        return Ext.define('Foo.model.ResultsModel'+Ext.id(), {
            extend: 'Ext.data.Model',
            fields: fields,
            proxy: {
                type: 'ajax',
                url: url,
                useDefaultXhrHeader: false,
                reader: {
                    type: 'json',
                    rootProperty: 'data'
                }
            }
        });
    }

我改变模型并重新配置网格:

 myStore.setModel(me.createResultModel('resources/data/results.json',meta.fields));
 myStore.loadPage(1);
 resultsGrid.reconfigure(myStore,meta.columns);

谢谢!

1 个答案:

答案 0 :(得分:0)

似乎调用了store.load(),但是错误的网址....我不知道这是否是所需的功能,但似乎旧模型的代理设置为商店,当我设置新模型时,代理仍然是旧的。