Я не понимаю какой-то ключевой смысл ExtJs, поэтому этот вопрос о том, чтобы направить меня к этому. Я думаю, что пытаюсь использовать ExtJs неправильно.
Я пишу приложение, которое позволяет пользователю добавлять динамическое число дочерних записей. Давайте представим, что я описываю комнату, и пользователь может нажать кнопку «Добавить дверь» и добавить FormPanel двери к списку FormPanels, где они могут указать детали двери.
Я храню детали двери в виде объекта в памяти и хочу связать результаты выбора значения в поле со списком, текстовом поле и т. Д. С полем на правильном объекте. Мой план состоит в том, чтобы затем иметь возможность отправить объект на сервер с помощью JSON / XHR / REST и сохранить его. У меня есть другая обработка, которая идет на объект двери (например, пространственная), поэтому я хочу иметь свою собственную.
Пока ничего, что я пробовал, не сработало. Я могу перехватить событие select, но либо моя область действия - это элемент управления полем (в этом случае я не могу получить доступ к объекту двери), либо область действия - это объект двери, и я не могу получить доступ к значению элемента управления поля.
Я немного запутался, потому что ExtJs говорит о связывании со скрытыми полями. Тем не менее, кажется, что требуется одно и только одно поле с данным идентификатором для данного элемента управления. Это означает, что я не могу иметь более одной двери, если область действия этого идентификатора не ограничена FormPanel.
Наконец, в идеале, у меня должен быть общий магазин, который был бы обновлен новыми записями в комбинированном ящике цветов, чтобы его могли использовать несколько дверей. Если кто-нибудь знает примеры этой работы, я был бы признателен.
var doorDataEditor = new Ext.form.FormPanel({
labelWidth: 75,
width: 350,
defaultType: 'textfield',
items: [{
fieldLabel: 'colour',
name: 'colour',
xtype: 'combo',
store: colourStore,
displayField: 'name',
typeAhead: true,
mode: 'local',
triggerAction: 'all',
emptyText: 'Select the colour for this door...',
selectOnFocus:true,
value: door.colour,
listeners:{
scope: door,
'select': function(ev, target) {
alert(target.findField('name')); this.colour = target.value;
}
}
}]});
Заранее спасибо за помощь.