如何更改extJS组合框下拉列表中的数据?
我有组合框,我正在尝试加载数据。我想对一些Reg表达式的数据进行分类。
这是我的Stroe代码。
Ext.define("MyApp.store.combo.country", {
extend: "Ext.data.Store",
alias:"widget.country",
//autoLoad:true,
fields: [{
name: 'name',type:'string'
},{
name: 'key',type:'int'
}],
proxy: {
type: 'ajax',
method: 'GET',
url: '/myCountry/getName',
reader: {
type: 'json'
}
},
listeners: {
beforeload ( store, operation, eOpts ) {
console.log("combo before load");
},
load: function (_this, records, successful, operation, eOpts) {
var length = records.length;
var htmlRegex = new RegExp("<(\"[^\"]*\"|'[^']*'|[^'\">])*>");
for(var i=0; i<length; i++){
if(htmlRegex.test(records[i].data.name)){
records[i].data.name = records[i].data.name.replace( /(<([^>]+)>)/ig, '');
}
}
}
}
});
现在,当我单击COmbobox时,我看不到下拉列表中的数据是sanatize(Executing without passing RegExp)。这是第二次工作良好。
因此,我的问题是,在这种情况下,我如何更改我的数据。
我已经尝试了加载方法中可以看到的内容。(即使在加载前方法中也没有发生任何事情。)
任何解决方法
2条答案
按热度按时间dluptydi1#
在我看来,最好的方法是使用计算功能。
这可以确保每次加载或更改存储中的记录时,都会进行正则表达式验证。唯一的缺点是你有另一个领域。
ngynwnxp2#
您可以在所需字段上定义convert或calculate配置,从而完全避免使用存储侦听器。
主要区别在于,第一个选项可以让您快速转换字段的值,而最后一个选项可以根据其他记录信息的详细说明创建新的属性/字段。