首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示加载器直到页面完全加载角度2+

显示加载器直到页面完全加载角度2+
EN

Stack Overflow用户
提问于 2018-03-29 15:31:24
回答 3查看 1.8K关注 0票数 0

我使用ng2-admin主题的角度2+。我正在使用API来获取数据。我面临的问题是,加载器隐藏了,但数据仍然没有加载,所以页面首先显示页面的骨架,然后加载数据。看起来很奇怪。

我希望加载器一直显示,直到所有数据都呈现在页面上。

首先,我认为这是API响应的问题,但我看到API已经完成了,只是浏览器渲染数据需要时间。对于一个想法,您可以在下面的示例中看到

代码语言:javascript
复制
this.loader = ture    
ApiCall.subscribe(response =>{
    logic();
    this.loader = false;
})

加载器隐藏了,但数据仍在渲染。

感谢大家的期待。

EN

回答 3

Stack Overflow用户

发布于 2018-03-29 16:13:14

据我所知,这里有两个解决方案。

如果您有多个回调函数,并希望在所有回调完成后获取所有数据,请使用要在视图加载后通知的Reference

  1. ,请使用Promise.all(iterable) ngAfterViewInit

编辑尝试使用此代码

代码语言:javascript
复制
this.loader = true
ApiCall.subscribe(response => {
    logic();        
    setTimeout(() => {
       this.loader = false;
    }, 0);
});

我认为这两种解决方案都会对你有帮助。

票数 0
EN

Stack Overflow用户

发布于 2018-03-29 17:19:11

你能这样试一下吗:

代码语言:javascript
复制
 this.loader = true;    
    ApiCall.subscribe(response =>{
        logic();
        setTimeout(() => { this.loader = false; })     
    })

因此,它只会在下一个节拍(更改检测周期)中隐藏加载程序;

票数 0
EN

Stack Overflow用户

发布于 2018-08-06 14:30:22

在您的主app.component中尝试

代码语言:javascript
复制
this.router.events.subscribe((event) => {
    if ((event) instanceof RouteConfigLoadStart) {
   //   loader =true ;
    } else if ((event) instanceof RouteConfigLoadEnd) {
    // loader=false;
    }
}); 

最好为加载器编写一个公共服务,并像这样使用它,

this.loaderService.show(); this.loaderService.hide();

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49550370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档