ExtJS - TreeStore在调用load()时发出重复请求

时间:2015-02-13 16:40:48

标签: javascript extjs

我有一个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()但它被忽略了。

0 个答案:

没有答案