2017-05-30 72 views
0

即使在一個組件中,我也需要創建一個點擊,它會在其父組件中顯示兄弟組件,但不知道如何去做。我理解使用輸入和輸出的父母/孩子通信,但這不是那樣工作的。兄弟組件之間的通信Angular2

所以我有這樣的結構:

  • -Parent組件

  • - 兒童一臺

  • - 兒童兩個

所以他們在我父組件的html,

<app-child-one></app-child-one> 
<app-child-two></app-child-two> 

Child One和Child兩個組件都是彈出式菜單,所以在父組件中單擊時,我顯示Child One組件(現在彈出),在彈出框內,我有按鈕Next,它應該顯示Child Two組件。

因爲還有更多的彈出窗口,所以我無法在Child One內部嵌入Child Two,所以我想保持它有點組織。

這裏是我的代碼:

父組件:

<app-one *ngIf="popupOne" [(popupOne)]="popupOne"></app-one> 
<app-two *ngIf="popupTwo" [(popupTwo)]="popupTwo"></app-two> 

兩個popupOnepopupTwo被設置爲false。

組件之一:

Input() popupOne: boolean; 
Input() popupTwo: boolean; 
Output() popupOneChange= new EventEmitter<boolean>(); 
Output() popupTwoChange= new EventEmitter<boolean>(); 
close() { this.popupOne.emit(false); } 
openPopupTwo() { this.popupTwoChange.emit(true); } 

組件二:

Input() popupTwo: boolean; 
+1

創建服務https://angular.io/docs/ts/latest/tutorial/toh-pt4.html –

+0

「我理解使用輸入和輸出的父/子通信,但這不是那樣工作」 - 爲什麼不?第一個孩子對父母說他已經完成了;父母將切換到第二個孩子。 –

+0

@CosminAbabei我試過了,在父母我設置爲變量爲false,輸入它在孩子一個,並輸出更改,輸入它內部孩子兩個=不工作 – grabnem

回答

1

appOne沒有註冊爲它輸出的popupTwo變量。

添加它,作爲<app-one *ngIf="popupOne" [(popupOne)]="popupOne" [popupTwo]="popupTwo"></app-one>,應該解決您的問題。

+0

哦,上帝......謝謝,不能相信我卡在這裏.. – grabnem

+0

沒問題,你已經發布代碼的好東西:D –

相關問題