次のように、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;
}