我的ExtJS应用程序存在问题。首先是代码
var typeStore = Ext.create('Ext.data.Store', {
fields: ['id', 'name'],
data: [
{id: 1, name: 'type1'},
{id: 2, name: 'type2'}
]
})
var mainStore = Ext.create('Ext.data.Store', {
fields: ['id', 'name', 'typeId'],
data: [
{id: 1, name: 'item1', typeId: 1},
{id: 2, name: 'item2', typeId: 1},
{id: 3, name: 'item3', typeId: 2},
{id: 4, name: 'item4', typeId: 2}
]
})
Ext.application({
name : 'Fiddle',
launch : function() {
// Ext.Msg.alert('Fiddle', 'Welcome to Sencha Fiddle!');
Ext.create('Ext.container.Viewport', {
items: [
Ext.create('Ext.form.ComboBox', {
fieldLabel: 'type',
store: typeStore,
valueField: 'id',
displayField: 'name',
listeners: {
select: function(combo, records, eOpts)
{
mainStore.clearFilter();
mainStore.filter([
Ext.create('Ext.util.Filter',
{
filterFn: function(record)
{
console.dir(record);
var mainId = record.get('id');
var typeId = record.get('typeId');
var type = records[0].get('id');
var tmpRes = (typeId == type);
return tmpRes;
},
root: 'data'
})
])
}
}
}),
Ext.create('Ext.form.ComboBox', {
fieldLabel: 'item',
store: mainStore,
valueField: 'id',
displayField: 'name'
})
]
})
}
});
所以你有两个组合框。第一个的值应该过滤第二个。 当您在第一个条目中选择条目时,它会正确过滤第二个框,直到您在第二个框中选择条目。 当您再次更改第一个中的值时,第二个组合框中没有条目。
不知何故过滤器没有重置。你对如何解决这个问题有任何想法吗?
我使用ext 4.2.1。