使用@input()传递数据之前加载Angular 2子组件

Nac*_*ene 3 angular2-services angular

我在angular 2应用程序中有两个组件:组件A(父组件)和组件B(子组件).

当我使用@Input()将数据(myData)从A传递到B时,我在我的B(子组件)中获取我的数据,但问题是子组件在myData之前加载并且我得到了undefined,这是一个可以控制台的唯一方法.log(myData)是在ngOnDestroy钩子里!

如何处理这种负载顺序?

Wap*_*vam 7

您可以简单地*ngIf在您的父母中使用 a

< child-component *ngIf="myData" > </child-component>
Run Code Online (Sandbox Code Playgroud)


Pau*_*aul 6

这是一个对我来说最简单的解决方案.在父组件中使用*ngIf可以延迟子组件的初始化.仅当'myData'具有值时,才会绑定子组件.

如果代码示例有帮助我可以告诉我,我可以把它放在一起.希望这可以帮助.干杯!


vad*_*djs -3

您可以在此处的示例项目中找到很好的示例

检查app.service.ts代码。

您需要描述将存储将在组件之间共享的数据的全局服务。