Gyors figyelmeztetés: Ne használja a destrukciót () az ionic2 betöltő ViewControllerén. Nemkívánatos hatásokat okozhat. Ehelyett használja a dismiss() függvényt.
Helytelen:
loading() { let loading = Loading.create({content: "loading"}); setTimeout(()=>{ //!!wrong!! loading.destroy(); },1000); this.nc.present(loading); }
Amint láthatja, a betöltő ViewController-ben a delete() hívás a következő ‹ion-select› elem nem megfelelő működését okozza. Ez főleg egy Ionic 2 Modalon volt megfigyelhető. A Modal komponens teljes szövege a végén található
Helyes:
loading() { let loading = Loading.create({content: "loading"}); setTimeout(()=>{ //!!right!! loading.dismiss(); },1000); this.nc.present(loading); }
Teljes kód, hogy kipróbáld magad:
import {Component} from "@angular/core"; import {NavController, ViewController, Loading} from "ionic-angular"; @Component({ template: ` <ion-content padding class="about"> <button (click)="cancel()">Cancel</button> <h2>first:</h2> <button (click)="loading()">trigger loading</button> <h2>then:</h2> <ion-list> <ion-item> <ion-label>Select</ion-label> <ion-select #selected (ngModelChange)="onSelected($event)"> <ion-option *ngFor="let s of list">s.value</ion-option> </ion-select> </ion-item> </ion-list> </ion-content> ` }) export class AboutPage { constructor(private nc:NavController, private viewCtrl:ViewController) { } list = [ {value: "foo", text: "bar"}, {value: "foo2", text: "bar3"}, {value: "foo3", text: "bar3"}, ]; cancel() { this.viewCtrl.dismiss(); } loading() { let loading = Loading.create({content: "loading"}); setTimeout(()=>{ //!!right!! loading.dismiss(); },1000); this.nc.present(loading); } }