我有一个treestore,我们称之为TreeB,需要根据另一棵树的选择进行过滤/重新加载。但是当我调用load方法时,此特定treestore的代理会发出2个请求。这是我从未经历过的非常奇怪的行为。我实际上有多个树库都以相同的方式配置,我同时在所有这些上调用load()方法,但是它的TreeB会产生重复请求。我在第一棵树上听“itemclick”事件,更改其他树库的url,添加一些extraParams并重新加载。
// treeA itemclick handler
handleFilterTrees: function(tree_, rec_){
this.getTreeB().getStore().getProxy().url = "blah.html";//overwriting url configured in store proxy
this.getTreeB().getStore().getProxy().extraParams = {treeA:rec_.data.id};
this.getTreeB().getStore().load();
}
就是这样。我使用相同的逻辑来在同一个处理程序中过滤另外两个树,它们工作正常。
继承我的商店:
Ext.define("MyApp.store.Reports", {
extend:"Ext.data.TreeStore",
lazyFill:true,
autoLoad:false,
fields:["id", "text", "leaf"],
root: {
text:"reprts",
id: '0',
expanded:true
},
proxy: {
timeout:"1200000",
type: 'ajax',
url: './abc.html',
reader: {
type: 'json'
}
},
listeners:{
beforeload:function(store){
if(store.isLoading()){
return false;
}
}
}
});
以前有人经历过这个吗?反正有没有阻止商店提出多个请求?我试过检查isLoading()但它被忽略了。