2017-10-14 55 views
0

也许我寻找了错误的条件,但I'T拿到工作。角4 - 更新内容动态跨组件

我有一个侧栏(component1),其中用户显示他的名字,在我的内容部分(component2)中有一个表单,用户可以更新他的名字。现在,如果用户正在更改他的名字并且数据库表示没问题,那么该名称也应该在侧栏上更改。

离子有一个事件订阅哪里被解雇的功能等待一个事件(我有可能再次获取的用户)。 Angular 4中有类似的东西吗?

EDIT1:

下面是其中部件的位置。最好的办法是如果我的auth.service存储和更新用户。如果其他组件正在进行更改,它们将在auth.service中调用getUser函数,并更新用于其之前挂钩它们的所有其他组件的用户objet。

https://i.stack.imgur.com/xKllS.png

https://i.stack.imgur.com/IoFyV.png

+0

https://angular.io/guide/component-interaction – omeralper

+0

@omeralper是的我知道这种方式,但是这些组件都是一个名为'panel'的组件的子组件。查看我的编辑结构 – muuvmuuv

回答

1

我会用RxJS观测听应用窗体上的任何变化:component 1component 2可以使用subject它们之间的通信。当用户提交表单时,外部服务或其本身会将数据发送到后端并等待响应。

如果响应成功,那么它使用RxJS的next()方法,让其他组件知道新的用户详细信息。由于component 1订阅了同一主题,因此它将收到更新的数据。

该方法不仅允许component 2,而且任何其他订阅该主题的组件都知道更新。