如何在extjs 4.0中为按钮创建类似拦截器的功能?

如何在extjs 4.0中为按钮创建类似拦截器的功能?,extjs,extjs4,Extjs,Extjs4,我有一个基于ExtJS构建的现有应用程序。我们有跨多个视图的按钮。我们有一个变更请求,每当点击一个按钮,在实际逻辑触发之前应该调用一些函数。此函数调用适用于所有按钮单击事件。 我们如何在ExtJS中处理这种情况?是什么阻止了您添加始终被每个侦听器调用的函数 click: function(btn) { functionThatAlwaysRuns(); // rest of your button specific logic here } 这听起来像是可以通过将所有按钮绑定到

我有一个基于ExtJS构建的现有应用程序。我们有跨多个视图的按钮。我们有一个变更请求,每当点击一个按钮,在实际逻辑触发之前应该调用一些函数。此函数调用适用于所有按钮单击事件。

我们如何在ExtJS中处理这种情况?

是什么阻止了您添加始终被每个侦听器调用的函数

click: function(btn) {
    functionThatAlwaysRuns();
    // rest of your button specific logic here
}

这听起来像是可以通过将所有按钮绑定到控制器中的公共侦听器,并使用策略模式来确定在通用函数之后运行哪个特定逻辑来显著清理的代码。这里可以找到策略模式的一个很好的例子:

在当前案例中,处理程序/侦听器是如何连接的?在控制器中,我们向每个控件添加了引用,并将方法调用绑定到click listenersLook at解决方案。