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

问题描述 投票:3回答:4

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

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

如何处理这种负载顺序?

angular angular2-services
4个回答
6
投票

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

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


0
投票

您可以在父母身上使用*ngIf

< child-component *ngIf="myData" > </child-component>

-1
投票

在经历了两天的地狱之后,我遇到了这个解决方案,它就像一个魅力。 ngOnChanges(value:any):void { //your code } reference link


-2
投票

您可以在示例项目here.中找到很好的示例

检查app.service.ts代码。

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

© www.soinside.com 2019 - 2024. All rights reserved.