我有一个可以观察到的东西,它是如何从服务器上获得所有盒子的。每个盒子都有一个属性(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
})
}
答案 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
})
}