我正在开发一个应用程序,其中来自不同插件的不同小部件将被加载到主机中,并且它们彼此不知道。所以我想使用 EDP 并在一个小部件中引发一个事件(例如,UserDeleted)并在另一个小部件中订阅该事件(著名的发布者/订阅者,或者让我们获得更具体的观察者模式)。
在 jQuery 中,我使用 trigger() 和 bind() 方法来完成此操作。但是,我无法在 Ext JS 中找到任何等效的东西。我错过了什么吗?或者是否有任何其他模式可以在 Ext JS 中创建松散耦合的 UI 小部件?
我正在开发一个应用程序,其中来自不同插件的不同小部件将被加载到主机中,并且它们彼此不知道。所以我想使用 EDP 并在一个小部件中引发一个事件(例如,UserDeleted)并在另一个小部件中订阅该事件(著名的发布者/订阅者,或者让我们获得更具体的观察者模式)。
在 jQuery 中,我使用 trigger() 和 bind() 方法来完成此操作。但是,我无法在 Ext JS 中找到任何等效的东西。我错过了什么吗?或者是否有任何其他模式可以在 Ext JS 中创建松散耦合的 UI 小部件?
如果您的小部件彼此不了解,则需要使用中介模式。
看来Ext.util.Observable就是你要找的。
由于 ExtJS 4.x Sencha 引入了控制器的概念,控制器以 MVC 应用程序的干净系统模式监听事件。在此方案中,您的组件将触发事件(内置或自定义),控制器将响应这些事件。
要触发自定义事件,您可以在几乎所有其他 ExtJS 类继承的 Observable 类上使用 fireEvent 方法。