我想请教您一个问题就是关Store的,我有两个store,一个是A,另外一个是B,A和B用的是同一个model,A里面的数据比B少,B中包含A的全部,我现在是想利用A去删除B中和A相同的数据,我试过
B。remove(A。data)
B。remove(A。getProxy()。getModel())
B。data。remove(A。getProxy()。getModel())
B。data。remove(A。data)但一直都删不到,请问该如何去删呢
B。remove(A。data)
B。remove(A。getProxy()。getModel())
B。data。remove(A。getProxy()。getModel())
B。data。remove(A。data)但一直都删不到,请问该如何去删呢
解决方案 »
- Servlet中的获取值问题
- 【分享】JavaScript版变速齿轮(纯JS/CSS实现)
- getElementsByTagName时,对页面上所有的select怎么操作
- 这个搜索效果请问怎么实现?
- 如何用js判断某个字符串是否只含有特定字符串?
- 友情帮忙吧,分都问完了,请教下<BODY onload="Init();" onclick="f_MoveTo()" >这个click事件,当前页面只有很少的一些地方有文字,点击页面中的空白部分不会实行onclick事件,只有在点击有内容的地方才实行
- 在javascript中命名分组的正则表达式是怎样写的,然后怎样利用命名替换或取出该命名级匹配的值?
- 2个html页面A、B,A如何提交表单信息到B?
- js控制的弹出窗口的问题。
- 请问:"子窗口"的"子窗口"怎样向"祖父窗口"写数据?
- js如何如何判断鼠标的移动
- 正则表达式“\d”?
你意思是我的想法使用的人少还是EXTJS4使用的人太少了,会的话请告诉我啊
A和B循环比较,记住B相同位置的索引,然后删除B的数据
我试过啦,就是不行,你看我上面说的
B。remove(A。data)
B。remove(A。getProxy()。getModel())
B。data。remove(A。getProxy()。getModel())
B。data。remove(A。data),我全部是这样的
A.each(function(model){
B。remove(model)
B。remove(A。getProxy()。getModel())
B。data。remove(A。getProxy()。getModel())
B。data。remove(A。data),
}
都不行啊
循环比较吧。获取对象,删除对象。
我有点懂你的意思,你意思是我创建model是同一个但在使用model的时候定义的对象是不一样,所以导致不能删到是吗,我创建model如下Ext.define('testmodel',
extend:'Ext.data.model'
//field是一样的所以省略
});
var AStore = Ext.create('Ext.data.Store', {
model : 'testmodel'
});var BStore = Ext.create('Ext.data.Store', {
model : 'testmodel'
});
这样的A、B中的model是一样的吧,但这样却删除不了B中包含有A的数据,数据是用正规的json数据传进来的,A,B中的数据是有的
this.id = id;
this.name = name;
return this;
}
var arr1 = [];
var arr2 = [];
arr1.push(new person(1,"张三"));
arr1.push(new person(2,"李四"));
arr2.push(new person(1,"张三"));
arr2.push(new person(2,"李四"));
arr2.push(new person(3,"王五"));
//删除arr2中arr1的数据,根据主健id判断
for(var i = 0 ; i < arr1.length;i++){
for(var x = arr2.length-1 ; x >=0 ; x--){
if(arr1[i].id == arr2[x].id){
arr2.splice(x,1);
break;
}
}
}
类似这样吧。
这个办法是可行,但这样需要的迭代次数非常大啊,假设arr1中有10条数据,arr2 中有20条数据,那就需要迭代200次,再者真的系统不会只有这么少数据,所以这样会导致系统很慢很慢
A.each(function(model){
B。remove(model)
}
A.each(function(a) {
if (a.getId() === b.getId()) {
B.remove(b);
return false;
}
});
});