Используя пример в «ext-designer-for-ext-js-4-users-guide.pdf», я собрал следующее. Проблема в том, что магазин не является обязательным. т.е. выбор пуст.extjs combo box не привязывается к хранилищу массивов
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": "Hello"}, { "comboList": "Привет"}, { "comboList": "GoodMorning"}]
он работал.
благодаря Джеронимо. Очень ценю время, потраченное на это. Я скопировал ваш код, и он работал в первый раз. Проблема была в том, что мои данные были в неправильном формате. Ваши данные верны, и я дал вам ответ. Из интереса вы работаете в подходе MVC? – frosty