后代如何将数据传递给Angular 2中的父项

时间:2017-08-07 22:48:33

标签: angular

我很好奇,如果父母后代的后代想要将信息传递给父母,那么传回信息的后代需要通过链回来。

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并绑定到Parent Component中的那个事件吗?

1 个答案:

答案 0 :(得分:0)

对于干净的架构,您可能不希望将后代2直接绑定到父级。

所以你可以从后代2到后代1生成一个事件给父母。

或者您可以考虑使用服务在组件系列之间进行通信。

我在这里有一个例子:https://blogs.msmvps.com/deborahk/build-a-simple-angular-service-to-share-data/

以下是摘要:https://plnkr.co/edit/KT4JLmpcwGBM2xdZQeI9?p=preview

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

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

这演示了两个兄弟组件之间的通信,但它们很容易成为父/子组件。