extjs在将其存储到商店之前删除重复值
问题描述:
我试图在将其存储到商店之前删除重复值。我只想在商店1次存储相同的值。但似乎下面的Ext.Array.unique行不起作用。任何人都可以请帮我解决这个问题。 谢谢extjs在将其存储到商店之前删除重复值
var input1store = new Ext.data.Store({
fields: [{name: 'name'}],
proxy: {
type: 'ajax',
url: 'www.requesturl.com?format=json&source1',
reader: {
type: 'json',
root: 'xml.result'
}
},
autoLoad: false,
sorters: [{property: 'name', direction: 'asc'}],
listeners:{
load: function(rec){
uniqueArray = Ext.Array.unique(rec.getRange());
}
}
});
答
可以使用filterBy
方法过滤掉你不希望出现在装车后存储记录。
请注意,商店将保留过滤出的记录的副本,如果调用clearFilter
(可能由您或使用商店的组件),它将恢复。如果您想彻底清除这些记录,则必须删除该副本。
Ext.create('Ext.data.Store', {
fields: ['name'],
// example data
proxy: {
type: 'memory',
data: [{name: 'Foo'},{name:'Bar'},{a:'Baz'},{a:'Foo'},{a:'Bar'}],
},
listeners: {
load: function(store) {
// using a map of already used names
const hits = {}
store.filterBy(record => {
const name = record.get('name')
if (hits[name]) {
return false
} else {
hits[name] = true
return true
}
})
// delete the filtered out records
delete store.snapshot
},
},
})
答
您可以在您的商店
http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.Model-cfg-idProperty指定idProperty
值(idProperty == '名')。
什么版本的Ext是这样的? 3.4? – rixo
这是4.06版本 – shiro
你到底想用这段代码实现什么功能?您加载商店,然后将某些内容分配给本地变量。结果应该是什么? – sha