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

时间:2016-08-25 13:58:43

标签: angular angular2-services

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

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

如何处理这种加载顺序?

4 个答案:

答案 0 :(得分:6)

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

让我知道代码示例是否有用,我可以将某些东西放在一起。希望这可以帮助。干杯!

答案 1 :(得分:0)

您可以像

一样在父母中使用*ngIf
< child-component *ngIf="myData" > </child-component>

答案 2 :(得分:-1)

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

答案 3 :(得分:-2)

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

检查app.service.ts代码。

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