日期:2014-05-16  浏览次数:20763 次

Extjs4 Store B删除Store A
我想请教一个问题就是关Store的,我有两个store,一个是A,另外一个是B,A和B用的是同一个model,A里面的数据比B少,B中包含A的全部,我现在是想利用A去删除B中和A相同的数据,

我就是这样删的,还有我试过拿两个store中的model出来比对是true的,但就是B不会remove这数据

A。each(function(model){
        B。remove(model);
}); 
------解决方案--------------------
A。each(function(model){
  B。remove(model);
}); 

楼主你首先要知道这个方法的意思
是遍历Astore中的每个record 也就是model参数是Astore的record
这个是一个JS对象,
B中的record是另一个JS对象,那么B中肯定永远没有A的记录的你这样删除是不会成功的。。
不知道这样描述你懂不, 这就好比{a:1}=={a:1}? alert(1):alert(0);一个道理这2个对象是不会相等的所以弹出0 ;
你要删除的话EXT提供了方法,比如你在model中设置了一个ID属性(为了方便起见我们就当ID是唯一的,即使它不是唯一的你也得找个能代表一个记录唯一的办法)
那你就可以B.remove(B。findRecord(id,1));
这里不只是findRecord方法,还有其他很多方法自己去看API吧