代码:
xtype: 'selectfield',
id: 'selectType',
cls: 'combobox',
store: 'ProvidersType',
displayField: 'name',
valueField: 'id',
listeners: {
change: function(field, value) {
alert(111);
}
}
应用程序加载后我有“111”警报,不仅在selectfield中选择新选项时。在使用setStore或setValue或updateOptions方法之后我也有这个警告...这非常糟糕,因为我从json加载selectfield的选项,并且总是有错误,因为json请求的参数我从当前选择的selectfield值...任何想法如何避免这种行为,并使其像jQuery一样正常工作?
编辑:
嗯,它可以正常使用静态选项,但如果我从商店加载选项时效果不好......
此代码效果很好,我只对选择的更改发出提醒:
xtype: 'selectfield',
id: 'selectType',
cls: 'combobox',
options: [
{text: 'First Option', value: 'first'},
{text: 'Second Option', value: 'second'},
{text: 'Third Option', value: 'third'}
],
listeners: {
change: function(field, value) {
alert(111);
}
但是,如果我正在连接商店的选项,我会立即提醒应用程序加载:
xtype: 'selectfield',
id: 'selectType',
cls: 'combobox',
store: 'ProvidersType',
displayField: 'name',
valueField: 'id',
listeners: {
change: function(field, value) {
alert(111);
}
}
商店是:
Ext.define('Providers.store.ProvidersType', {
extend: 'Ext.data.Store',
config: {
model: 'Providers.model.Provider',
proxy: {
type: 'scripttag',
url : 'http://example.dk/providers/service.php',
extraParams: {
action: 'provider_types',
username: 'test2',
callback: '?',
format: 'json'
},
reader: {
type: 'json',
rootProperty: 'providers'
}
},
autoLoad: true
}
});