2011-12-08 32 views
0

我開始在ExtJS4中開發一個遵循新MVC模式的原型。我有一個擁有客戶名單(網格)和詳細信息表格的主表單(客戶),雙擊表格中的一行即可打開詳細信息表單。目前,我在控制器主表單這樣做了:ExtJS4 MVC - 將數據傳遞到詳細信息表單 - 最佳實踐

var view = Ext.widget('CustomerDetailsView'); 
view.show(); 

但我還需要在客戶傳遞的細節形成有細節構成了用戶負荷附加數據。在simple MVC sample app at the Sencha web site做到這一點是:

view.down('form').loadRecord(selectedRecord); 

所以我理解這一點的方式是詳細信息視圖被裝入主視圖全程記錄。首先,我的詳細信息視圖有自己的控制器和存儲,其次,這看起來並不是在視圖之間進行通信的正確方式。

  • 主控制器不應該以某種方式調用Details控制器嗎?
  • in another post here它使用的意見/控制器之間的所有這種通信 事件的建議,但我不知道它是有道理的創建 所有這些應用程序範圍的事件只是一個簡單的主/細節 通信

在ExtJS4 MVC應用程序模式中,將數據傳遞給子視圖/控制器的建議方法是什麼?

+0

我已經解釋了在這裏使用路由的一種方法.http://stackoverflow.com/a/24125359/434319 – BuddhiP

回答

1

在這裏做事情沒有一個「正確」的方式。真正由你來組織最有意義的應用程序。您不必爲單個視圖設置單個控制器。事實上,我會說一個控制器應該對來自多個視圖的事件作爲一般規則做出響應。當然,如果你有一個超級複雜的視圖,你的控制器類正在失控 - 通過一切手段分解它。

現在回答你的問題,你問:

  1. 是的,你可以有一個控制器聊到另一個問題:從主控制器 - this.getController('DetailsController').doSomething();

  2. 您在駕駛員座椅位置。最終,你可以按照不同的模式進行設置。如果這不適合你 - 不要這樣做。