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