Extjs中本身对combobox的下拉列表中数据的查询已经支持的很好,举个例子:
{name: 'test',
xtype: 'combo',
labelWidth: 30,
fieldLabel: '测试',
displayfield: 'name',
queryMode: 'remote',
store:Ext.create('Ext.data.Store',{
proxy:{
url:'/test'
}
}
假设服务器返回的 示例数据:
{name:'简书‘},
{name:'简书1‘}
在上面的配置中,在combobox输入:‘1’,就可以把‘简书1’,筛选出来。
很方便是吧,extjs为我们做了一切。如果仅仅是这样那么我就不会记录本文,神奇的事情发生在当queryModel的值设为:‘local’时,本地筛选的规则非常奇怪。
在combobox输入‘1’,无效,输入‘简’,两条都出现,输入‘简书1’,才能把第二天找出来。是从左到右来查询。太可爱了。。。
为了实现更加人性化的本地查询,本来想自己来写个方法,发现要考虑的情况很多,在解决过程中,去源码里查找,发现了这个属性‘enableRegEx',api里介绍,这个只有在queryModel是local的时候才有效。但是默认配置是’false‘。这个一看就有戏,试了一下果然筛选效果就跟queryModel:’remote‘一样了。
不过,为什么enableRegEx: 'true',这么强势的属性要默认为false,真是。。。。