ExtJS中的控制器职责是什么?Ext.window.Window实例中的事件
What is the controller responsibility in ExtJS? Events in instance of Ext.window.Window?
目前使用ExtJS 4,我试图使用控制器来实现所有事件,但有一些事件,我正在处理的窗口本身,这是关闭和销毁事件。我需要在这里执行一些代码
这种做法不好吗?如果事件发生在窗口(Ext.window.Window的一个实例)。
我应该把这些事件转发给控制器来处理吗?
我不确定这样做的正确方式,但我认为我必须从我的"窗口"在它的事件,然后调用控制器上的fireEvent对控制器的引用?
这里的最佳实践是什么?
我正在使用ExtJS 4.2,所以不能使用MVVM。
ExtJS似乎让我实现的事件直接在"组件",但以下MVC模式,这是不是不好的做法,一切都应该真正通过控制器
控制器或视口应该处理事件。你不需要在窗口中引用控制器。
如果你想要自定义事件,你需要从窗口内部触发事件,像
this.fireEvent("myCustomEvent"[,elementThatTriggeredTheEvent]);
然后你需要使用对窗口的引用来监听控制器内部的事件:
yourWindow.on("myCustomEvent",this.myCustomEventHandler[,scope]);
还有一些方法可以在不引用事件触发元素的情况下监听事件。
编辑-关于您的评论:
如果你需要在afterlayout上做一些关于窗口内元素的事情,那么我会在窗口内做。如果你想对没有在窗口中定义的元素做一些事情,那么让实例化元素的控制器来处理它。在ExtJS 5中有一个叫做ViewController的东西。我不知道它是否已经在4.2了。你可以利用ViewController来拆分发生在你窗口中的东西。这里有一个链接:
https://www.sencha.com/blog/using-viewcontrollers-in-ext-js-5/编辑2:
如果您不想要自定义事件,只需与控制器一起侦听窗口已经在重要场合抛出的事件
相关文章:
- 正在寻找比$(document).ready慢的$(window).load的替代方案
- 直接下载文件,而不是从window.open(url)
- $window.ga在AngularJS事件中未定义
- 如何将PDF作为二进制文件传递到window.open()
- window.onload没有'无法在Android WebView中工作
- window.location替换并传递URL历史记录条目中的变量
- window.on.scroll事件未启动
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- 为什么window.open不打开一个以变量形式给出的链接
- window.location使用jquery mobile实现chrome跳转
- window.opener.document在ie中不起作用
- window.onpopstate不工作;当我导航回页面时,不会发生任何事情
- 未捕获的类型错误:topFrame.window.changeSelectedBarStyle不是函数,原因是什么
- 通过window.opener将弹出窗口中的值传递给父窗口
- Ext6 /Sencha Build Error with Ext.window.Window
- 为什么“;window=window.parent"创建一个无限循环
- ExtJs 4 -如何在动态更新可关闭属性时更新Ext.window.Window布局
- ExtJS中的控制器职责是什么?Ext.window.Window实例中的事件
- 美元的原因.Extend (window, window, someobject)触发页面刷新
- Extjs通过单击按钮打开新的Ext.window.window