我在ExtJS 4中遇到了MVC模式的問題。至少我認爲我有。在與這個問題接觸過多個人,並在Sencha論壇上發表過無數次後,我現在正在轉向更廣泛的觀衆,希望得到一個燈泡或確認。ExtJS 4 MVC視圖和子/子控制器難題的多個實例
問題
您的應用程序打開很多不同的意見,其中一些本身是小型應用程序的能力。此外,用戶可能希望打開一個視圖的多個併發副本。
此應用程序是一個單頁面的客戶端JavaScript應用程序。
ExtJS 4 MVC模型期望您定義應用程序類中的所有控制器。這些控制器隨後在應用程序加載時初始化。控制器跟蹤視圖,模型和商店。
當您多次初始化控制器,說創建視圖的多個副本,你最終指向同一數據存儲和功能上發送重複事件應用程序事件總線兩種觀點。
我通過向組件和控制器添加新的原型方法來重構我的應用程序,以允許a)子控制器(我的一些控制器變得非常大)以及b)專門爲它們的視圖定義存儲。模型仍然可以在控制器上定義,只是爲了方便處理程序使用,如果您需要執行類似於從服務器獲取記錄的操作。
問題
我的MVC的理解將導致我相信模型更直接關係到視圖不是那麼控制器。
我鼓勵ExtJS 4決定將控制器的商店(我認爲可以看作是更經典的模型的包裝)附加到控制器上,以鼓勵重新使用已加載的數據,並優化遠離同一類的許多副本實例化。然而,在我看來,如果一個人打算讓許多用戶可以看到的視圖實例,就不能這樣做。在我看來,擁有很多實例是面向對象框架中的一個重要選項,因此我反對這一趨勢並在某些基礎類實現了原型。 (謝謝Ext.implement!)。
有什麼辦法有使用開箱裝入他們與不同的數據視圖的多個併發實例所提供的制定者,吸氣等MVC類和製作用途?
那麼究竟是什麼問題呢?我在** Question **部分沒有看到明確而連貫的問題。請更新你的問題,以包括一個問題,可以用事實,參考資料(不主觀,有意見等)回答。 – casperOne
一致性增加 – aenigmatic
太棒了,謝謝! – casperOne