输入后无法在另一个子组件上更新子组件数据

时间:2019-06-24 09:35:37

标签: angular

我有一个包含4个子组件的父组件,这4个子组件共享一些字段,当我向其中一个组件添加新属性时,我希望在其他子组件上更新数据,我该怎么做无需重新加载页面?

我尝试在父组件中创建一个函数来初始化子组件的所有数据,然后在构造函数中调用它,因此每次在网页上的各个组件之间切换时,都会调用用于初始化字段的函数并使用正确的数据更新所有字段,但这并不是一种非常有效的方法,因为每次单击某项时我都会调用该函数,因此我想到的解决方案是在父级中创建ngOnInit方法组件将初始化字段,并在每次子组件更新时用新数据填充它们,但是我不知道在子组件更新时如何调用ngOnInit方法。

所以我需要的是每次子组件字段更新时在父组件中调用ngOnInit

1 个答案:

答案 0 :(得分:0)

我只想声明一个这样的行为主题。

private behaviourSub = new BehaviorSubject(initialValue);

您要做的就是订阅此行为主题,之后您就可以释放价值。

behaviourSub.next(newValue);

您可以跨组件订阅它,只需将其保留在一项服务中即可。