大家好,当我使用 ExtJS 4.1 时,我经常遇到一个问题:每次我必须建立对对象的引用时,我都会付出很多努力,而且当我调用对象上的方法时,我经常会收到错误像这样:
未捕获的类型错误:无法调用未定义的方法“销毁”
例如,考虑以下情况,其中我有一个包含两个项目的字段集:一个字段容器和一个按钮。我的目的是为按钮编写一个适当的处理函数,这样当我点击按钮时,字段容器将被销毁。为此,我需要建立对 fieldcontainer 的正确引用。
这是我的代码:
xtype: 'fieldset',
id: 'product_fieldset',
title: 'Prodotti tempi e quantita',
defaultType: 'textfield',
layout: 'anchor',
items: [{
xtype: 'fieldcontainer',
layout: 'hbox',
defaultType: 'textfield',
defaults: {
labelAlign: 'top'
},
items: [{
xtype: 'combo',
name: 'product',
fieldLabel: 'Product',
forceSelection: true,
editable: false,
store: products,
queryMode: 'local',
displayField: 'name',
valueField: 'name',
allowBlank: false,
afterLabelTextTpl: required
},{
xtype: 'numberfield',
name: 'p_on_weight',
fieldLabel: '% on weight',
value: 0,
minValue: 0,
allowBlank: false,
afterLabelTextTpl: required,
hideTrigger: true,
keyNavEnabled: false,
mouseWheelEnabled: false
},{
xtype: 'numberfield',
name: 'time',
fieldLabel: 'Time (minutes)',
value: 0,
minValue: 0,
allowBlank: false,
afterLabelTextTpl: required,
hideTrigger: true,
keyNavEnabled: false,
mouseWheelEnabled: false
},{
xtype: 'numberfield',
name: 'ph',
fieldLabel: 'Ph',
minValue: 0,
allowBlank: false,
afterLabelTextTpl: required,
hideTrigger: true,
keyNavEnabled: false,
mouseWheelEnabled: false
},{
xtype: 'textareafield',
name: 'remarks',
fieldLabel: 'Remarks'
}]
},{
xtype: 'button',
text: 'Delete this product',
handler: function() {
proper_reference_to_fieldcontainer.destroy();
//need help for previous line
}
}]
好吧,任何人都可以建议我一种引用 fieldcontainer 的方法,可能不使用 fieldcontainer 的 id 吗?(Sencha 架构师建议不要使用 id 来建立引用)。
提前致谢。
恩里科。