簡體   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