因此,假設您有一個包含工具欄,邊欄和網格的界面。該工具欄有一個下拉菜單,當用戶更改時,側邊欄和網格中的內容會發生變化。回到Angular 1,我會使用服務來獲得我所有的動態數據。當服務中的某些內容發生變化時,使用該服務的所有組件也會更新。Angular2 - 如何在組件之間共享數據/更改
那麼在Angular 2中,它看起來像人們使用不同的方法。我想得到你的意見,哪個是首選的方式。
- 靜態服務
- OnChanges
- 輸入和輸出
更新 - 16年3月9日
看起來像最好的解決方案就是線程蒂埃裏Templier發佈:Delegation: EventEmitter or Observable in Angular2
我剩下的問題是,如果最好的做法是爲組件之間共享的每個數據項創建新服務,或者我們只需要一個具有存儲所有共享數據的對象的服務。
See Plnkr for code
Original Plunker - 每一次變化都會有自己的服務
Revised Plunker for example - 只有一個服務存儲對象中的所有數據。一個類型將被傳遞給每個偵聽器,以檢查它是否需要根據該類型進行任何操作。
其他人提供了很好的答案,但要注意,是的一個部分關於[組件交互]的文檔(https://angular.io/docs/ts/latest/cookbook/component-communication.html)同樣值得一讀。 – jandersen