2016-11-09 103 views
4

我目前正在使用Typescript處理Angular 2項目。使用Typescript在Angular 2中的組件之間共享行爲

我有幾個組件共享相同的行爲:它們都能夠顯示加載程序(取決於它們是否獲取某些數據),錯誤屏幕(如果獲取失敗),並且它們都訂閱相同的服務(獲取數據的服務)。該服務每30秒刷新一次數據,並且組件用戶正在做差不多與新數據一樣。

我找不到分享此行爲的好方法。

我試着從打字稿中使用mixins,但首先,我不能重寫我在組件中聲明的方法,其次,我仍然必須在我的組件中聲明方法,但沒有任何內容,所以我的編譯器不會抱怨。

我也試過使用裝飾器,但我的編譯器抱怨,因爲它沒有找到裝飾器中聲明的方法。

我終於嘗試使用typecript繼承與父組件,沒有任何模板,它只是一個父類,我用它與「擴展ParentComponent」,並把我所有的邏輯在ParentComponent。這最後一種方法是最簡單的方法,但我有強烈的感覺,這是絕對不是好的方式(組成繼承等)

有沒有辦法做到這一點呢?我來自Ruby on Rails,類似Ruby中的「擔憂」會很棒。

+0

那麼你究竟想要分享什麼?模板?組件類? –

回答

0

創建一個ParentComponent,其中包含一個路由器插座以將唯一行爲保存爲(ChildComponents)並通過共享服務共享數據模型。

還包含lazyloading(使用loadchildren的路由)來獲取模塊特定的共享服務。

相關問題