从服务获取数据后,我试图一次隐藏div元素之一,您可以在下面找到HTML代码
<progressbar
*ngIf="isLoadingBootStockData"
[value]="100"
type="default">
</progressbar>
最初,我将变量isLoadingBootStockData
分配为false,并在从服务中获取所有数据后将其分配回true。
因此,typeScript代码如下所示:
return this.cseStockService
.getBootStockMaterials()
.pipe(
map((materialStock) => {
this.isLoadingBootStockData = false;
const MaterialList = this.cseStockService.createCseStockMaterialModels(
materialStock,
this.model.notification,
this.model.listMaterial,
CSE_STOCK.BOOT_STOCK
);
}).subscribe()
因此,在上面的代码第5行中,我将从服务中获取数据,并将变量分配给this.isLoadingBootStockData = false;
这样html div <progressBar>...</progressBar>
会隐藏
但是,这里的问题是,变量没有赋给false。由于我使用的是可观察的,所以不可能吗?
如果没有,我该怎么办?加载数据后,我想一次将该变量设为false。
答案 0 :(得分:1)
Observable将在您订阅后执行。您必须在
的subscribe方法中放置以下行 return this.cseStockService
.getBootStockMaterials()
.pipe(
map((materialStock) => {
const MaterialList = this.cseStockService.createCseStockMaterialModels(
materialStock,
this.model.notification,
this.model.listMaterial,
CSE_STOCK.BOOT_STOCK
);
}).subscribe((res:any)=>{
this.isLoadingBootStockData = false;
});