用Ag-grid中的另一个可观察的响应更改可观察的响应

时间:2019-09-16 12:58:06

标签: angular typescript rxjs observable ag-grid

我有一个可以观察到的东西,它是如何从服务器上获得所有盒子的。每个盒子都有一个属性(lastUpdateBy),我想从用户服务更改为全名。问题是,Ag-grid总是会更快地显示结果,然后数据就会改变。刷新网格后,数据将正确显示。任何想法,这是什么问题?谢谢

getAllBox() {
    this.BoxesService.getAllBoxes().subscribe(responseData => {
      responseData.Boxes.map(item => {
        this.userService
          .getUserName(item.lastUpdatedBy)
          .subscribe(fullName => {
            item.lastUpdatedBy = fullName
          })
      })
      this.agGridData = responseData.boxes
    })
  }

1 个答案:

答案 0 :(得分:0)

如果不允许只调用一个WEB API,则可以检查数组中是否有其他项,如果数组中没有项,则只显示网格:

HTML:

<ag-grid-angular 
    *ngIf="showData"
    style="width: 500px; height: 500px;" 
    class="ag-theme-balham"
    [rowData]="yourRows" 
    [columnDefs]="yourColumns"
    >
</ag-grid-angular>

TypeScript:

showData: Boolean = false;

getAllBox() {

    this.BoxesService.getAllBoxes().subscribe(responseData => {
        let boxMaxIndex = responseData.Boxes.length - 1;
        responseData.Boxes.map((item, index) => {
            this.userService
            .getUserName(item.lastUpdatedBy)
            .subscribe(fullName => {
              item.lastUpdatedBy = fullName
              if (boxMaxIndex === index)
                this.showData = true;
            })
        })
        this.agGridData = responseData.boxes
      })
}