2013-05-13 98 views
2

我有一个类创建一个按钮,并将监听器连接到click事件。在一个子类中,我想要替换超类处理程序。此代码添加了一个侦听器:如何替换飞镖中的听众?

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

如何删除现有的侦听器?

回答

2

格雷格的答案描述了如何取消订阅事件源。 这是正确的,但国际海事组织有点尴尬,因为你需要保持订阅实例,以防止任何派生类想取消它,或者如果你想隐藏的话,你需要在基类上提供一个方法细节。

正如你所说,你想替换处理程序,我理解提供了一个不同的实现,更简单的方法是在派生类中重写handleNewAlert方法。

当然,如果不是方法名称指定了匿名函数,因为它显然不能被覆盖,但在示例中显示的场景中,这可能是一种更简单的方法。

+0

优秀的回应。你遇到了跟踪订阅方法的所有问题,并提供了更直接的方法。谢谢! – 2013-05-15 15:27:39