У меня есть компонент, который действует как строка таблицы, которая называется flightLegComponent:
[ flight leg component ] [-] [+]
[ flight leg component] [-] [+]
...
при нажатии кнопки [-] этот компонент должен быть удален с родительской панели.
Я добавил слушателя к кнопке [-], а в слушателе я звоню
this.remove(theFlightLegComponent);
где ' this ' - родительский компонент.
Это вызывает исключение, по-видимому, вы не можете удалить компоненты внутри обработчика событий ... Как правильно его удалить? вызвать метод после задержки?
Новое:
Панели структурированы так:
_flightLegRow: function(removable) {
var flightLegInput = new xx.yy.zz.search.FlightLegInput({
columnWidth: .8
});
var legId = 'flightLeg-' + this.legs++;
var c = {
border: 0,
width: '90%',
layout: 'column',
id: legId,
items: [
flightLegInput,
{
columnWidth: .2,
margin: 10,
border: 0,
layout: {
type: 'column'
},
items: [{
xtype: 'button',
text: '-',
disabled: !removable,
listeners: {
click: Ext.Function.bind(function() {
//debugger;
this.remove(legId, true);
}, this)
}
},{
xtype: 'button',
text: '+',
listeners: {
click: Ext.Function.bind(function(){
this.add(this._flightLegRow(true));
}, this)
}
}]
}
]
};
return c;
}