上下文:
处理具有内联编辑功能的通用数据表。
组件:
最主要的组成部分-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有效负载具有有关编辑哪一行,哪一列以及新值的信息)
问题:
一旦使用者更新了数据库中的新值(异步),如何知道表组件更新成功还是失败?
答案 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();
})
}