2017-01-30 90 views
0

在Angular 2中,我有一種情況,一個Component可以有多個子組件,並且每次只能使用* ngIf顯示一個組件。在Angular 2中父子數據共享的最佳方式

<div class="main-content" *ngIf="vdcService.vdRequest.sectionId == 1"> 
    <a></a> 
</div> 

<div class="main-content" *ngIf="vdcService.vdRequest.sectionId == 15"> 
    <b></b> 
</div> 
<div class="main-content" *ngIf="vdcService.vdRequest.sectionId == 15"> 
    <c></c> 
</div> 

等等,所有這些組件都會在表格和其他元素中顯示它們的具體數據。現在我想從父級發送數據到這些子組件。我怎樣才能以最好的方式做到這一點意味着我應該通過使用@Input來傳遞數據,還是應該將數據存儲在服務中,並且子組件直接訪問服務中的數據。父組件通過查看哪個組件將要呈現來從休息服務中獲取數據。我需要一些建議我應該使用哪種選擇或者其他最佳解決方案?

+0

https://angular.io/docs/ts/latest/cookbook/component-communication.html –

+0

是的,我讀過,但假設我有一個對象在服務中定義,然後每個子組件可以訪問它,那麼爲什麼我發送它每次都要孩子。 –

+0

這取決於您的詳細要求。如果您使用observable,那麼您的組件可能會收到有關更改的通知,否則組件需要輪詢更改(角度更改檢測會爲您執行此操作),這是非常低效的。 –

回答

0

這只是家長對兒童的溝通。最簡單的方法是在每個子組件上使用@Input。每當從其餘服務中獲取數據時,父組件只需更新與這些輸入關聯的值。

相關問題