加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular – 如何在Ionic 2中为多个请求显示LoadingController

发布时间:2020-12-17 17:51:41 所属栏目:安全 来源:网络整理
导读:根据Ionic文档,我可以使用以下代码加载Ionic LoadingController: ionViewLoaded() { let loader = this.loading.create({ content: 'Getting latest entries...',}); loader.present().then(() = { this.someService.getLatestEntries() .subscribe(res = {
根据Ionic文档,我可以使用以下代码加载Ionic LoadingController:

ionViewLoaded() {
  let loader = this.loading.create({
    content: 'Getting latest entries...',});

  loader.present().then(() => {
    this.someService.getLatestEntries()
      .subscribe(res => {
        this.latestEntries = res;
        loader.dismiss();
      });

  });
}

如果我只是发出1个ajax请求,这样可以正常工作.但我有5个要求,如果我隐藏/显示加载控制器这样会导致屏幕闪烁.

有没有办法我可以提供loadingController,但只有当所有的Ajax请求都已完成时才解除()

编辑:请求不依赖于彼此.他们是独立的.我正在寻找的是一种在所有可观察的请求完成时得到通知的方法.这样,当所有这些都完成时,我可以解除LoadingController.

解决方法

我在我的应用程序中使用以下实用程序.如果我们想要显示相同的加载器并且需要在不同的步骤更改加载器文本,这也适用于多个步骤或/和页面.

我们可以多次调用showLoader(),最终需要调用hideLoader().

@Injectable()
export class Utility {
    loader: any = null;
    constructor(private _alertCtrl: AlertController,private _loadingController: LoadingController) {
    }

    private showLoadingHandler(message) {
        if (this.loader == null) {
            this.loader = this._loadingController.create({
                content: message
            });
            this.loader.present();
        } else {
            this.loader.data.content = message;
        }
    }

    private hideLoadingHandler() {
        if (this.loader != null) {
            this.loader.dismiss();
            this.loader = null;
        }
    }

    public showLoader(message) {
        this.showLoadingHandler(message);
    }

    public hideLoader() {
        this.hideLoadingHandler();
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读