我對Extjs相當陌生,在瀏覽一些關於Extjs MVC模式的教程和博客後,我不清楚複雜的應用程序(如10 - 15頁導航)如何建立在extjs平臺上。控制器在Extjs應用程序中如何與MVC一起使用
從sencha論壇,建議所有的控制器都需要在app.js中預先定義(因爲與加載DOM的UI相比,手動加載控制器不會成爲性能問題。由sencha論壇經理)。
通過上面的方法去,我還有幾個問題:
何時控制器實例化?當應用程序加載時,它們是否全部加載並安裝,並且一直監聽它們中定義的事件,直到應用程序的整個生命週期?
在控制器類中定義Models [],Stores []和Views []是什麼意思?他們什麼時候加載並實例化?
頁面導航如何與控制器一起工作?如果導航到新頁面僅轉換爲getParentContainer.remove(componentX)和getParentContainer.add(componentY),那麼控制器的目的僅僅是處理事件的文件?
控制器是否有任何範圍(實例化>銷燬)?如果不是如何創建和銷燬多個實例,以便我的行爲不會被錯誤的實例監聽(我見過一些提到控制器的博客大多是單例)?
有人可以拋出一些燈光嗎?任何示例/插圖都會有很大的幫助。
由於
非常感謝您的意見。這解釋了我的大部分問題。我正在開發與Extjs 5的應用程序。因此,從ext5開始,對所有通用控制器只使用Ext.app.ViewControllers是否合理? 並且有一個Ext.app.Controller(它是全局的並且一直活着)來處理像路由這樣的全局事件? – optimusPrime 2014-09-26 03:17:50
一般而言,我認爲這聽起來很不錯。在Ext JS 4中,在控制器中完成的大部分工作都是處理視圖事件,這絕對是ViewController的領域。我仍然在做最好的路由選擇...... 4,我開發了自己的工具,讓我在控制器中定義路由,使路由非常乾淨和分段。當然,在5中,你不可能在ViewControllers中做到這一點,因爲它們可能不存在以處理路由。因此,使用通用控制器進行路由可能是處理該問題最麻煩的方式。 – existdissolve 2014-09-26 13:59:01