Ionic4 или 3 LoadingController (диалог выполнения) - PullRequest
0 голосов
/ 13 марта 2019

Я использую ionic4 LoadingController в приложении. он отклоняется через определенный промежуток времени, но не хочет так. Я не хочу устанавливать время. перед вызовом web api я выведу на экран LoadingController и хочу отменить его всякий раз, когда получу ответ от службы отдыха. Кто-нибудь может мне помочь, как это реализовать?

Ответы [ 3 ]

0 голосов
/ 14 марта 2019
// Initialize variable
private loader: any;
private loaderActive: boolean = false;

// Generic method to display the loader
async showLoader() {
this.loaderActive = true;
this.loader = await this.loadingCtrl.create({
  message: 'Please wait...',
  spinner: 'crescent',
});
await this.loader.present();
}

// Generic method to dismiss the loader
async dismissLoader() {
if (this.loaderActive === true) {
  await this.loader.dismiss();
}
this.loaderActive = false;
}

Before api call just call the method this.showLoader(), once you get the response 
just call the this.dismissLoader() method.
0 голосов
/ 04 апреля 2019

Я бы сделал предположение и сказал бы, что вы используете HttpClient, чтобы получить свои данные от службы отдыха, поэтому я бы предложил этот сценарий для вас, Прежде всего мы начнем с отображения загрузчика:

let loader = await this.loadingCtrl.create({
      //Your loader content and options
    });
loader.present();//show the loader

После этого мы получаем данные, используя HttpClient. давайте предположим, что мы ввели таким образом public http: HttpClient, так что это зависит от вашей службы отдыха http mthod (post, get, put ...). код будет:

this.http.get("url").subscribe((data: any) => {
//process your data here
loader.dismiss();//then we hide the loader
});

Оставьте мне комментарий, если я его неправильно понял.

0 голосов
/ 13 марта 2019

Вы должны сделать что-то вроде этого:

async function presentLoading() {
      const loader= document.querySelector('ion-loading-controller');
      await loader.componentOnReady();

      const element = await loader.create({
        message: 'Please wait...',
        spinner: 'crescent',
        duration: 2000
      });
      return await element .present();
}
...