2013-05-13 47 views
2

我有一個類創建一個按鈕,並將監聽器連接到click事件。在一個子類中,我想要替換超類處理程序。此代碼添加了一個偵聽器:如何替換飛鏢中的聽衆?

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

如何刪除現有的偵聽器?

回答

2

格雷格的答案描述瞭如何取消訂閱事件源。 這是正確的,但國際海事組織有點尷尬,因爲你需要保持訂閱實例,以防止任何派生類想取消它,或者如果你想隱藏的話,你需要在基類上提供一個方法細節。

正如你所說,你想替換處理程序,我理解提供了一個不同的實現,更簡單的方法是在派生類中重寫handleNewAlert方法。

當然,如果不是方法名稱指定了匿名函數,因爲它顯然不能被覆蓋,但在示例中顯示的場景中,這可能是一種更簡單的方法。

+0

優秀的迴應。你遇到了跟蹤訂閱方法的所有問題,並提供了更直接的方法。謝謝! – 2013-05-15 15:27:39