2

ボタンを作成し、リスナーをクリック イベントに接続するクラスがあります。サブクラスでは、スーパークラス ハンドラーを置き換えたいと思います。このコードはリスナーを追加します。

row.query("[value='Save']").onClick.listen(handleNewAlert);

既存のリスナーを削除するにはどうすればよいですか?

4

2 に答える 2

2

Greg の回答では、イベント ソースからサブスクライブを解除する方法について説明しています。これは正しいですが、派生クラスがキャンセルしたい場合に備えてサブスクリプションインスタンスを保持する必要があるか、詳細を非表示にする場合は基本クラスでこれのメソッドを提供する必要があるため、IMO は少し厄介です。 .

ハンドラーを置き換えたいとおっしゃっているように、これは別の実装を提供していると私は理解していますが、より簡単なアプローチはhandleNewAlert、派生クラスでメソッドを単純にオーバーライドすることです。

もちろん、メソッド名の代わりに無名関数を指定した場合は、明らかにオーバーライドできないため、機能しませんが、例に示されているシナリオでは、これがより簡単なアプローチになる可能性があります。

于 2013-05-14T08:05:10.017 に答える