我不理解ExtJs成语中的一些关键点,所以这个问题是关于指导我的。我想我正试图以错误的方式使用ExtJ。
我正在编写一个允许用户添加动态数量的子记录的应用程序。让我假装我正在描述一个房间,用户可以点击添加门按钮,将一个门FormPanel添加到一个FormPanel列表中,在那里他们可以指定门的详细信息。
我将门的细节作为内存中的对象,我希望能够将选择合并框,文本字段等中的值的结果与正确对象上的字段相关联。我的计划是能够使用JSON / XHR / REST将对象发送到服务器并保留它。我有其他处理进入门对象(例如空间),因此想拥有自己的。
到目前为止,我所尝试的一切都没有奏效。我可以挂钩select事件,但我的范围是字段控件(在这种情况下我无法访问门对象)或范围是门对象,我无法访问字段控件的值。
我有点困惑,因为ExtJs谈到链接到隐藏字段。但是,对于给定的控件,它似乎只需要一个具有给定id的字段。这意味着我不能拥有多个门,除非该id的范围仅限于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;
}
}
}]});
提前感谢您的帮助。
答案 0 :(得分:1)
您正在使用通用DOM事件处理程序格式(ev,target),但这不是通用DOM事件。对于组件,您应该在API docs中查找适当的组件特定事件签名。在这种情况下,对于ComboBox是( Ext.form.ComboBox combo, Ext.data.Record record, Number index )
您应该能够从record.data.colour
中获取值(假设您的记录是如何映射的)。