[英]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.