コード:
xtype: 'selectfield',
id: 'selectType',
cls: 'combobox',
store: 'ProvidersType',
displayField: 'name',
valueField: 'id',
listeners: {
change: function(field, value) {
alert(111);
}
}
selectfieldで新しいオプションを選択したときだけでなく、アプリケーションのロード後に「111」アラートが表示されます。また、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
}
});