我通过ngFor
在模板中链接一个数组来填充表格。
但是,由于该数组是通过HTTP请求异步填充的,因此,当从远程服务器将新数据加载到该数组中时,我注意到略有渲染延迟,这会在重新填充该表时导致“闪烁”。
如果我在本地重新填充数组,则不会发生这种情况,因此我假设问题是,随着每个项目从可观察对象加载到数组中,表正在更新。
我想等到数据完全加载后再在模板中进行渲染。我一直在尝试的方法是将数据加载到temp数组中,当temp数组完全填充时得到通知,然后将其添加到链接到模板的数组中。
我相信订阅的第三个参数应该可以完成一些工作,因此我尝试使用它。见下文...
this.dataService.callApi()
.subscribe(
response => this.arrayTemp = response.content,
error => this.response = error.text(),
() => this.array = arrayTemp
);
但是,这没有按我预期的那样工作,我仍然看到渲染问题。有任何想法吗?谢谢。
我在订阅中使用了布尔值“ loaded”。
将“已加载”默认设置为false,并在表周围使用“ ngIf =“已加载”,然后在订阅中进行设置。
this.loaded = false;
this.dataService.callApi()
.subscribe(
(response) => {
this.arrayTemp = response.content;
this.loaded = true;
}
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句