validar framework formgroup formcontrol form control con campos angular typescript ionic2 ionic3

angular - framework - Ionic 2-El controlador de carga no funciona



validar campos con angular 2 (4)

El problema con su código es que está haciendo la solicitud http y luego llamando a dismiss() pero el método dismiss() no espera a que termine la solicitud http. Por favor, eche un vistazo a este plunker .

El código es casi autoexplicativo:

import { NavController, LoadingController } from ''ionic-angular/index''; import { Http, Response } from ''@angular/http''; import { Component } from "@angular/core"; import ''rxjs/Rx''; @Component({ templateUrl:"home.html" }) export class HomePage { private users : Array<any> constructor(private http: Http, private loadingCtrl: LoadingController) { // Create the popup let loadingPopup = this.loadingCtrl.create({ content: ''Loading data...'' }); // Show the popup loadingPopup.present(); // Get the data this.http.get(''https://jsonplaceholder.typicode.com/users'') .map((res: Response) => res.json()) .subscribe( data => { // I''ve added this timeout just to show the loading popup more time setTimeout(() => { this.users= data; loadingPopup.dismiss(); }, 1000); // Should be just this: // this.users= data; // loadingPopup.dismiss(); }, err => console.error(err) ); } }

Estoy intentando usar LoadingController recientemente agregado de esta manera:

let loading=this.load.create({ content: "Connexion au serveur Migal en cours..." }); loading.present(); this.http.get(this.urlCheckerForm.value.migalUrl+''/action/MobileApp/URLChecker'') .map(res => res.json()) .subscribe( data => this.newConnection(data,loading), error => this.catchURLError(loading)); loading.dismiss();

Básicamente, solo quiero mostrar mi ventana emergente de carga antes de que se cargue la página y descartarla después.

Seguí el ejemplo en Ionic 2 Documentation , pero parece que no funciona en absoluto ...

EDITAR: El componente de carga ni siquiera aparece.


Para la última versión de ionic, debe manejar el evento de descarte:

let loading = this.load.create({ content: "Connexion au serveur Migal en cours..." }); loading.present(); loading.onDidDismiss().then(() => { do thinks..... });


Puede usar ion ionViewLoaded () para mostrar el Controlador de carga y luego descartarlo cuando se carga la vista y se obtiene el contenido de su Suscripción.

ionViewLoaded() { let lr = this.loading.create({ content: ''Your Display Message...'', }); lr.present().then(() => { this.Yourservice.Yourfunction() .subscribe(res => { this.yourresult = res; }); lr.dismiss(); }); }

También puede estructurar su código de esta manera para asegurarse de que la Suscripción esté completa antes de Descartar el cargador.

ionViewLoaded() { let lr = this.loading.create({ content: ''Your Display Message...'', }); lr.present().then(() => { this.Yourservice.Yourfunction() .subscribe( data => this.yourresult = data, error => console.log(error), ()=> lr.dismiss() ); }); }


Puse "loading.dismiss ();" en suscribirse {} y funciona bien :)

this.http.get(url) .subscribe(data =>{ this.items=JSON.parse(data[''_body'']).results; loading.dismiss(); },