「ext-designer-for-ext-js-4-users-guide.pdf」の例を使用して、以下をまとめました。問題は、ストアが拘束力がないことです。つまり、選択は空です。extjsコンボボックスが配列ストアにバインドされていない
MyComboBox.js
Ext.define('MyApp.view.MyComboBox', {
extend: 'MyApp.view.ui.MyComboBox',
initComponent: function() {
var me = this;
me.callParent(arguments);
}
});
Ext.define('MyApp.view.ui.MyComboBox', {
extend: 'Ext.form.field.ComboBox',
fieldLabel: 'comboList',
displayField: 'comboList',
queryMode: 'local',
store: 'MyArrayStore',
triggerAction: 'all',
valueField: 'comboList',
initComponent: function() {
var me = this;
me.callParent(arguments);
}
});
店/ MyArrayStore.js
Ext.define('MyApp.store.MyArrayStore', {
extend: 'Ext.data.Store',
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
autoLoad: true,
storeId: 'MyArrayStore',
data: [
[
'Search Engine'
],
[
'Online Ad'
],
[
'Facebook'
]
],
proxy: {
type: 'ajax',
reader: {
type: 'array'
}
},
fields: [
{
name: 'comboList'
}
]
}, cfg)]);
}
});
**更新**
これは狂気私を運転していました。それは[turns out][1]
私の配列はjson形式にする必要があります。私は
にそれを更新すると、[{ "comboList": "こんにちは"}、{ "comboList": "こんにちは"}、{ "comboList": "おはようございます"}]
は、それが働きました。
感謝をジェロニモ:
は、あなたが実際にあなただけのようにのようなデータストアの設定を変更する必要があります(例えばJSONを返すWebサービスからの)リモートデータストアを望んでいた場合。これを書いている時間を本当に感謝します。私はそれが初めて働いたあなたのコードをコピーしました。問題は私のデータが間違った形式であることでした。あなたのデータは私があなたに答えを与えた正しいものです。興味のないMVCのアプローチで働いていますか? – frosty