2016-06-08 63 views
0

例如,我有兩個資源 - 用戶和組。還有兩個頁面,它們處理這些資源的列表,它們是相似的。它們都具有分頁和過濾器的共同邏輯,但資源必須以不同方式顯示,所以我想創建一個resource-list組件並將user-viewgroup-view組件作爲參數(以及Ember數據的資源名稱)傳遞給組件。我可以傳遞一個組件嗎,或者我可以以某種方式以另一種方式來完成它,因爲我對MVC和那種東西都非常陌生。Ember.js如何將組件作爲參數傳遞給另一個組件?

回答

1

您可以將兩個組件都放在資源列表中,但您需要顯示一個或其他依賴於forUserView或forGroupView的資源列表組件。 所以裏面的資源list.hbs你可以有:

{{#if forUserView}} 
    {{user-view}} 
{{#if}} 

{{if forGroupView}} 
    {{group-view}} 
{{/if}} 

而當你使用的資源列表組件只定義:

{{resource-list forUserView=true}} 

{{resource-list forGroupView=true}} 
+0

那麼,這不是一個優雅的解決方案,但如果它是唯一的選擇。這對縮放來說是不好的,因爲我可能有更多的模型 – ionagamed

+0

你說得對,它不夠優雅,也許有更好的解決方案,我從來不需要添加更多的組件,所以我很滿意這個解決方案。 –

+0

檢查這個職位我認爲它有你的解決方案 https://spin.atomicobject.com/2015/03/26/emberjs-dynamically-render-components/ –

相關問題