繁体   English   中英

ExtJS中的控制器职责是什么? Ext.window.Window实例中的事件?

[英]What is the controller responsibility in ExtJS? Events in instance of Ext.window.Window?

当前正在使用ExtJS 4,我正在尝试使用控制器来实现所有事件,但是在Window本身中要处理的一些事件是close和destroy事件。 我需要在这里执行一些代码。

这是不好的做法吗? 如果事件在Window中发生(Ext.window.Window的实例)。

我是否应该将这些事件转发给控制器进行处理?

我不确定执行此操作的正确方法,但是我想我必须从事件的“窗口”中获取对控制器的引用,然后在控制器上调用fireEvent?

最佳做法是什么?

我正在使用ExtJS 4.2,因此无法使用MVVM。

ExtJS似乎可以让我直接在“组件”中实现事件,但是遵循MVC模式,这不是一个坏习惯,并且所有内容都应该真正通过控制器。

控制器或视口应处理事件。 您不需要在窗口内引用控制器。

如果要自定义事件,则需要从窗口内部触发事件,例如:

this.fireEvent("myCustomEvent"[,elementThatTriggeredTheEvent]);

然后,您需要使用对窗口的引用来监听控制器内的事件:

yourWindow.on("myCustomEvent",this.myCustomEventHandler[,scope]);

还有一些无需引用事件触发元素即可侦听事件的方法。

编辑-关于您的评论:

如果您需要对窗口内的元素进行事后布局方面的工作,那么我将在窗口内进行。 如果要对窗口内未定义的元素进行处理,则让实例化元素的控制器处理它。 在ExtJS 5中,有一个叫做ViewController的东西。 我不知道它是否已经在4.2中。 您可以利用ViewController拆分窗口中发生的事情。 这是一个链接:

https://www.sencha.com/blog/using-viewcontrollers-in-ext-js-5/

编辑2:

如果您不希望自定义事件,只需与控制器一起监听在重要场合窗口已经抛出的事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM