首页 > 解决方案 > Angular 8:删除订阅后更新表

问题描述

我正在尝试更新一个为每一行填充一个 ngFor 的表,当我订阅删除一行时,它不会更新该表,但在离开页面并返回后...

这些是我的 component.ts 中的功能

  constructor(
    private _servicio: MaterialesService,
    private _dates: DatePipe,
    private _comun: ComunService,
    private activedRouter: ActivatedRoute
  ) { }

  p : number = 1;

  ordenes_fecha: any = [];
  ordenes: any = [];
  estatus: any = "";
  authority: string = "user";
  toDelete: number = 0;

ngOnInit() {
  const params = this.activedRouter.snapshot.params;

  this._comun.getCurrent();

  if (this._comun.authority == 'admin') {
    this._servicio.getOrdenes().subscribe(
      res => {
        this.ordenes = res
        this.authority = 'admin'
        console.log(this.ordenes)
      }
    )
  } else { 
    if (params.user) {
      this._servicio.getByUser(params.user).subscribe(
        res => {
          this.ordenes = res
          console.log(res)
        },
        err => console.error(err),
      );
    }
  } 
}

refresh(){
  this._servicio.getOrdenes().subscribe(
    res => {
      this.ordenes = res;
    }
  )
}

deleteOrden(id){
 this._servicio.deleteOrden(id).subscribe(
   res => {
     console.log(res);
     this.refresh();
   },
   err => console.log(err)
 )
 }

如果我refresh()在特定按钮中调用该函数,它会起作用,但当我调用删除函数时它不会……有人能告诉我我做错了什么吗?或者如果存在另一种方式来做到这一点?谢谢。

标签: angular

解决方案


我假设this._servicio.getOrdenes()只是httpClient.get在引擎盖下使用。httpClient.get在获取请求后完成。您的 refresh 方法是无用的,因为 observable fromgetOrdenes()已经完成。


推荐阅读