2017-08-07 52 views
0

我很好奇,如果父代的後代的後代想要將信息傳遞迴父代,傳遞信息的後代需要通過鏈迴向上。後代如何將數據傳遞給父角色2

descendant2 Component -> descendant1 Component -> Parent Component 

這將是事件發射的後代2組件:

@Output() loginStatus: EventEmitter<boolean> = new EventEmitter<boolean>(); 
formSubmit(){this.loginStatus.emit(true);} 

在父我們就可以捕捉事件

<registerForm (loginStatus)="setLoginState()"></registerForm> 

難道我們剛剛成立descendant2的eventEmitter並綁定到父組件中的該事件?

回答

0

對於一個乾淨的建築,您可能不希望直接將後裔2綁定到父級。

所以你可以生成一個事件從後代2到後代1到父母。

或者您可以考慮使用服務在組件族之間進行通信。

我這裏有一個例子:https://blogs.msmvps.com/deborahk/build-a-simple-angular-service-to-share-data/

這裏是plunker:https://plnkr.co/edit/KT4JLmpcwGBM2xdZQeI9?p=preview

import { Injectable } from '@angular/core'; 

@Injectable() 
export class DataService { 
    serviceData: string; 
} 

這說明了以下同級組件之間的通信,但它們很容易被父/子組件來代替。