角度-家长事件完成时确认给孩子的情况

时间:2018-12-10 11:33:15

标签: angular angular6 angular-components

上下文:
处理具有内联编辑功能的通用数据表。

组件:

最主要的组成部分-data.table.component.(ts|html|css)
子组件-data.row.component.(ts|html|css)
子组件-data.cell.component.(ts|html|css)

过程:
从data.cell.component启用了内联编辑功能,一旦编辑完成(通过输入键或模糊)事件将发送到data.row.component,然后发送到table.component.ts,该事件将发送给任何人使用表组件($ event有效负载具有有关编辑哪一行,哪一列以及新值的信息)

问题:
一旦使用者更新了数据库中的新值(异步),如何知道表组件更新成功还是失败?

1 个答案:

答案 0 :(得分:0)

我建议创建一个提供可观察(主题)的服务。数据表组件将订阅该可观察对象,并在异步组件更新该可观察对象时得到通知。 示例:

@Injectable()
export class SaveNotificationService {
  public saveDone: Subject<void> = new Subject<void>();
}

然后在数据表组件中拥有

constructor(private saveNotificationService: SaveNotificationService) {
  this.saveNotificationService.saveDone
    .pipe(takeUntil(this._destroyed))
    .subscribe(() => {
      // do the refresh here
    })
}

并在您的异步组件中保存您应该拥有的数据

saveData() {
  this.http.post(...).subscribe(() => {
    this.saveNotificationService.saveDone.next();
  })
}