#ionic-framework #ionic3 #ionic4
#ionic-framework #ionic3 #ionic4
Вопрос:
Я использую ionic4 LoadingController в приложении. он отключается через определенный интервал времени, но я этого не хочу. Я не хочу устанавливать время. перед вызовом веб-api я буду отображать LoadingController, и я хочу отключить его всякий раз, когда получу ответ от службы rest. кто-нибудь может мне помочь, как это реализовать?
Ответ №1:
Вы должны сделать что-то вроде этого:
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();
}
Ответ №2:
// 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.
Ответ №3:
Я бы предположил, что вы используете HttpClient
для получения ваших данных из вашего сервиса rest, поэтому я бы предложил вам этот сценарий. Прежде всего, мы начнем с отображения загрузчика:
let loader = await this.loadingCtrl.create({
//Your loader content and options
});
loader.present();//show the loader
После этого мы получаем данные с помощью HttpClient
. предположим, что мы внедрили этот способ public http: HttpClient
, так что это зависит от вашего rest-сервиса http mthod (post, get, put …). код будет следующим:
this.http.get("url").subscribe((data: any) => {
//process your data here
loader.dismiss();//then we hide the loader
});
Оставьте мне комментарий, если я неправильно его понял.