2017-05-24 1 views
3

Instanziierungsanwendung der Ionic 2 AlertController auf der gleichen Seite gibt es diesen Fehler: Uncaught (in Versprechen): eingefügte Ansicht bereitsAlertController Ionic 2 Uncaught (in Versprechen): eingefügte Ansicht bereits zerstört wurde

zerstört würde Ich mag an Lassen Sie es mehrere Male ausführen, die der ionischen 1 Warnungsinstanz entspricht, die mehrmals auf derselben Seite aufgerufen werden kann.

Code:

export class ConsultaProdutoPage { 

    public usar_leitor: boolean = false; 
    public codigo: string = ''; 
    public icon: object = { 'icon': 'search', 'text': 'Buscar' }; 
    public mostrar_produto: boolean = false; 
    private loading; 
    private _alert: Alert; 

    constructor(public navCtrl: NavController, 
     public navParams: NavParams, 
     private _barcodeScanner: BarcodeScanner, 
     private _alertCtrl: AlertController, 
     private _service: consultaProdutoService, 
     private _loadingCtrl: LoadingController) { 

     this.loading = this._loadingCtrl.create({ 
      content: 'Buscando Produtos. Aguarde...', 
      dismissOnPageChange: true 
     }); 

     this._alert = this._alertCtrl.create({ 
      'title': "Aviso", 
      'message': 'Erro ao buscar produtos.', 
      buttons: ['OK'] 
     }); 

    } 

    buscaProduto(codigo) { 

     this.loading.present(); 

     this._service.getProduto(this.codigo) 
      .then(success => { 
       console.log(success); 
      }) 
      .catch(err => { 

       this.loading.dismiss(); 
       this.codigo = ''; 

       this._alert.present(); 

      }); 


    } 

} 

Antwort

14

Dieses Problem ist aufgrund der Wiederverwendung von Laden Objekt in Ihrer Funktion.

Da Sie "es mehrmals ausführen möchten", wird das Ladeobjekt auch wiederverwendet. Dieses Objekt kann jedoch nur einmal verwendet werden. Überprüfen Sie here.

Versuchen:

buscaProduto(codigo) { 
     this.loading = this._loadingCtrl.create({ 
      content: 'Buscando Produtos. Aguarde...', 
      dismissOnPageChange: true 
     }); 

     this.loading.present(); 

     this._service.getProduto(this.codigo) 
      .then(success => { 
       console.log(success); 
      }) 
      .catch(err => { 

       this.loading.dismiss(); 
       this.codigo = ''; 

       this._alert.present(); 

      }); 


    } 
Verwandte Themen