webentwicklung-frage-antwort-db.com.de

Aktualisieren Sie eine Seite in ionic2

Gibt es eine Möglichkeit, nur eine Seite zu aktualisieren, d. H. Nur einen Bildschirm in ionic2.

Ich habe es versucht :

window.location.reload();

und 

location.reload();

die App wird jedoch neu erstellt. Es gibt eine Möglichkeit, nur diese Seite (bestimmte Anzeige) zu aktualisieren.

Auch versucht:

<ion-input *ngIf="no_internet === 1" (click)="refresh($event)"></ion-input>

in TypeScript:

refresh(refresher) {
    console.log('Begin async operation', refresher);

    setTimeout(() => {
        console.log('Async operation has ended');
        refresher.complete();
    }, 2000);
}
12
Narendra Vyas

Versuchen Sie diesen Code:

this.navCtrl.setRoot(this.navCtrl.getActive().component);
16
Ahmad Aghazadeh

Sie können auch die ionische Auffrischung verwenden, um eine Pull-Aktion zum Aktualisieren der Seite zu erstellen

http://ionicframework.com/docs/v2/api/components/refresher/Refresher/

3
catu

Ich würde das tun: (basierend auf @Ahmad Aghazadeh Antwort)

this.navCtrl.Push(this.navCtrl.getActive().component).then(() => {
   let index = this.viewCtrl.index;
   this.navCtrl.remove(index);
})

=> Diese Seite noch einmal drücken (erneutes Laden)

=> Entfernen Sie die Seite, auf der wir waren (mit Index)

2
Cedric

Beispiel für die Verwendung eines Ionenauffrischers in einer asynchronen Funktion in ionischem 3:

in Ihrer .html-Datei:

<ion-content no-padding >
<ion-refresher (ionRefresh)="doRefresh($event)">
    <ion-refresher-content></ion-refresher-content>
  </ion-refresher>

und in Ihrer .ts-Datei: 

    constructor(...) {
     ...
    samplefuncion(null){
       asyncFunction().then(()=>{
    ...//after success call
    ...
    if (event)    
    event.complete();

    },(error)=>{
    ....
    if (event)
    event.complete();
    })
    }

         doRefresh(event) {
            samplefuncion(event);        
          }
1
hamid araghi

Html:

  <ion-refresher (ionRefresh)="doRefresh($event)">
    <ion-refresher-content></ion-refresher-content>
  </ion-refresher>

</ion-content>

TypScript:

@Component({...})
export class NewsFeedPage {

  doRefresh(refresher) {
    console.log('Begin async operation', refresher);

    setTimeout(() => {
      console.log('Async operation has ended');
      refresher.complete();
    }, 2000);
  }

}

quelle: Ionische Dokumente

0
zouhair

Probieren Sie es aus, öffnen Sie einfach eine Seite und drücken Sie dann die Seite erneut. 

this.navCtrl.pop(); 
this.navCtrl.Push(NewPage);

Hoffe das wird helfen. 

0
Anand_5050

Wenn Sie gewöhnlichen Konventionen folgen möchten, habe ich einen einfachen Weg gefunden, die aktuelle Ansicht (einschließlich aller Parameter) neu zu laden. Ich habe das mit Ionic3 getestet, aber es sollte immer noch für Ionic 2 gelten

Verschieben Sie den gesamten Initialisierungscode für jede Seite in ionViewDidLoad(), das EINMAL ausgeführt wird, wenn die Ansicht zum ersten Mal geladen wird

import { Component } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';
import { Api } from '../../providers/api';
import { Movie } from '../../interfaces/movie';

@Component({
    selector: 'page-movie-info',
    templateUrl: 'movie-info.html'
})
export class MovieInfoPage {

    constructor(
        public navCtrl: NavController,
        public navParams: NavParams,
        public api: Api
    ) {
    }

    /**
     * Run all page initialization in this method so that this page
     * can be refreshed simply by re-calling this function
     */
    ionViewDidLoad() {
        //access any parameters provided to the page through navParams. 
        var movieId = this.navParams.data.movieId;
        this.api.movies.getById(movieId).then((movie) => {
            this.movie = movie;
        });
    }
    public movie: Movie;
}

Sie können die aktuelle Ansicht von überall in der App mit diesem Code erneut laden

//get the currently active page component
var component = this.navController.getActive().instance;
//re-run the view load function if the page has one declared
if (component.ionViewDidLoad) {
    component.ionViewDidLoad();
}
0
TwitchBronBron