【发布时间】:2017-11-14 21:20:38
【问题描述】:
我有一个父组件(P1)和两个子组件(C1 和 C2)。 两个子组件都有一个可编辑的primeng 数据表。 我在 P1 上有两个按钮:fetch() 和 save()。 fetch() 调用数据库来获取数据。 我正在使用共享服务来获取数据并将其传递给使用 BehaviorSubject 的组件。 我的数据对象如下所示:
export interface ParentObj { name: string; child1 : Child1[]; child2: Child2[]}
export interface Child1 { weight: number;}
export interface Child2 { code: string;}
子组件从共享服务订阅数据。 现在的问题是子组件也修改了它们拥有的数据。 因此,单击 P1 上的 save() 时,我无法从子组件中获取最新修改的值,因为我无法通知 P1 C1 和/或 C2 已更改数据。
有没有办法实现相同的功能,以便在调用 save() 并反映在 ParentObj 中时通知子组件?。 p>
【问题讨论】:
-
@Manu:数据已经从父级传递给子级,但不是相反,因为没有像子级组件上的事件这样的通信方式。
-
你应该尝试使用 RxJS 库中的行为主题
-
尝试使用 redux
ngrx-store进行状态管理和数据共享。
标签: angular typescript primeng primeng-datatable