删除记录后的PrimeNg刷新表

我正在使用这段代码从table of PrimeNg中删除一条记录。

delete(user: User) {
  this.confirmationService.confirm({
    message: 'Do you want to delete this record?',header: 'Delete Confirmation',icon: 'pi pi-info-circle',accept: () => {
      this.usersService.deleteUser(user.id)
        .subscribe(users => {
          this.users = this.users.filter(item => item.id != user.id);
        });
    },reject: () => {
      // do another thing
    }
  });
}

HTML

<p-table #dt [columns]="cols" [value]="users" [paginator]="true" [rows]="5" [rowsPerPageOptions]="[5,10,20]"
    [resizableColumns]="true">
    <ng-template pTemplate="caption">
        <div style="text-align: left">
            <i class="pi pi-search" style="margin:4px 4px 0 0"></i>
            <input type="text" pInputText placeholder="Filter.."
                (input)="dt.filterGlobal($event.target.value,'contains')" style="width:auto">
        </div>
    </ng-template>
    <ng-template pTemplate="header" let-columns>
        <tr>
            <th *ngFor="let col of columns" [pSortableColumn]="col.field" pResizableColumn pReorderableColumn>
                {{col.header}}
                <p-sortIcon [field]="col.field"></p-sortIcon>
            </th>
            <th>action</th>
        </tr>
    </ng-template>
    <ng-template pTemplate="body" let-rowData let-columns="columns">
        <tr>
            <td *ngFor="let col of columns">
                {{rowData[col.field]}}
            </td>
            <td>
                <button pButton type="button" icon="pi pi-check" class="ui-button-info"
                    (click)="update(rowData)"></button>
                <button pButton type="button" icon="pi pi-trash" class="ui-button-danger"
                    (click)="delete(rowData)"></button>
            </td>
        </tr>
    </ng-template>
</p-table>

这将从数据库中删除用户,但不会刷新我的表(过滤器应转义已删除行的记录,但不会,我可以看到表中的记录)。

请删除记录后,有什么方法可以刷新表?


编辑

有些奇怪

当我尝试时:

this.usersService.deleteUser(user.id).subscribe(
  result => {
    console.log("Success: " + result)
  },error => {
    this.users = this.users.filter(item => item.id != user.id);
    console.log("Error: " + error);
  },() => {
    console.log("END");
  }
);

它工作得很好,我想我的服务响应是错误而不是正确的响应,但是在后端,我确定我会在后端返回200 OK响应。

我认为我的问题与表无关,但是与我的服务无关,我this.http.delete等待的状态不同于200,因为我在订阅中遇到了错误。

deleteUser(id: number): Observable<Object> {
  return this.http.delete(`${environment.apiUrl}/v0/users/${id}`);
}
lin_504 回答:删除记录后的PrimeNg刷新表

解决的问题

在后端,我返回了 200 状态代码,delete不接受此状态,因为我的代码不起作用。

我所做的一切都设为 204 作为后端的响应,一切正常。

本文链接:https://www.f2er.com/2408841.html

大家都在问