Store.load() 在设置新模型后不执行
Store.load() does not execute after setting a new model
我想使用 myGridPanel.reconfigure(store,columns)
重新配置 GridPanel。我不能为此使用 metachange 事件,因为我需要单独调用元数据(后端约束)。
我调用元数据,收到我需要的元数据,然后创建一个包含一组新字段和一个新代理的新模型(新 url)。我将模型设置为现有商店(绑定到我的 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);
谢谢!
似乎调用了 store.load(),但 url 错误...。我不知道这是否是所需的功能,但似乎旧模型的代理已设置到商店,当我设置新模型时,代理仍然是旧模型。
我想使用 myGridPanel.reconfigure(store,columns)
重新配置 GridPanel。我不能为此使用 metachange 事件,因为我需要单独调用元数据(后端约束)。
我调用元数据,收到我需要的元数据,然后创建一个包含一组新字段和一个新代理的新模型(新 url)。我将模型设置为现有商店(绑定到我的 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);
谢谢!
似乎调用了 store.load(),但 url 错误...。我不知道这是否是所需的功能,但似乎旧模型的代理已设置到商店,当我设置新模型时,代理仍然是旧模型。