2012-10-14 36 views
4

我正在開發一個使用ember.js和使用spring MVC編寫的其餘API的應用程序。我必須創建一個帶有幾個小部件的儀表板。每個部件作爲自己的行爲,並會調用不同的API方法。我正在考慮爲每種類型的widget創建一個控制器子類。然後將實例化它們並將其視圖添加到Container視圖。但是,燼將自動爲每個控制器創建一個實例,那麼它是一條很好的路徑嗎?任何建議fom的ember.js社區?基於Ember.js的儀表板

謝謝你的幫助。

+4

也許你可以看看http://code418.com/ember.js-dashboard/,由@pangratz編寫。源代碼應該在這裏:https://github.com/pangratz/dashboard –

+0

我已經看到,它包含了很多有趣的東西,但沒有解決我的問題。 –

+0

好吧,我錯誤地認爲它可以滿足你的需求:(因爲他的項目中有很多小部件,但它看起來不是你想要的那些小部件) –

回答

4

,而不是爲每個插件插槽,我寧願通過按鈕區(列...),槽這將是一個ContainerView,在其中一個我會根據用戶的設置動態添加小部件視圖。

+0

是的我認爲是實際的方式,謝謝 –

+0

不客氣:-)很高興我能幫上忙。你需要更多信息?如果不是,你可以考慮接受答案。 –

+0

是的,使用路由任何控制器將由Ember實例化,有任何方法可以避免這種情況。我想爲每種類型的Widget設置一種類型的控制器。所以,如果我有兩個相同類型的Widget,我將有兩個該類型的控件。 –

5

你的想法聽起來不錯。

確實有很多方法來構造這個。我或許會建議作出DashboardView和DashboardController,並在其模板,有幾個outlets,一個爲每個插件「插槽」:

{{outlet topWidgetView}} 
{{outlet leftWidgetView}} 
... 

然後在路由器,在儀表板路徑的connectOutlets方法,連接後的部件你實例化儀表板:

router.get('applicationController').connectOutlet('dashboard'); 

router.get('dashboardController').connectOutlet({ 
    outletName: 'topWidgetView', 
    name: 'fooWidget' 
}); 
router.get('dashboardController').connectOutlet({ 
    outletName: 'leftWidgetView', 
    name: 'barWidget' 
}); 
+1

我想知道我是否會在這裏使用插座,因爲該頁面似乎是靜態的,並且小部件不會切換,但這種解決方案具有靈活性優勢 –

+0

事實並非如此,因爲每個區域可以有多個小部件,基本上每個小部件都有x和y座標:x指定地區和y在該地區的訂單 –