2016-03-01 10 views

Antwort

2

Ionic 1


Ich habe nicht verwendet Ionic 2, aber zur Zeit im mit Ionic 1.2 und wenn sie noch ui-Router verwenden, als Sie reload verwenden können: true in ui-sref

oder Sie können unter Code in Ihre Abmelde Controller

$state.transitionTo($state.current, $stateParams, { 
    reload: true, 
    inherit: false, 
    notify: true 
}); 

Angular 2

hinzufügen 0

Verwendung

$ window.location.reload();

oder

location.reload();

+0

ich bereits Link auf Antworten von ionic1 Beiträge geschrieben haben .. so das wirklich nicht – Basit

+0

Ok Lassen Sie mich es zu versuchen, als gebe hilft Komm zurück zu dir –

+0

Bro verwendest du eckig 2 –

0

Sie müssen die Schnittstelle CanReuse implementieren und die routerCanReuse überschreiben, um false zurückzugeben. Versuchen Sie dann, router.renavigate() aufzurufen.

Ihre Komponente sollte wie folgt aussehen:

class MyComponent implements CanReuse { 
    // your code here... 
    routerCanReuse(next: ComponentInstruction, prev: ComponentInstruction) { 
    return false; 
    } 
} 

Und dann, wenn Sie Login/Logout durchführen, rufen:

// navigate to home 
router.renavigate() 
+0

Was ist mit 'location.reload();', würde es nicht funktionieren? – Basit

0

Dies ist ein Hack, aber es funktioniert.

Wickeln Sie die Logik, die die Vorlage Einstellung in einem setTimeout folgt und das gibt der Browser einen Moment, um die Auffrischung zu tun:

/* my code which adjusts the ng 2 html template in some way */ 
setTimeout(function() { 
    /* processing which follows the template change */ 
}, 100); 
0

Für ionische 2 es für mich funktioniert, wenn Sie Neuladen der Seite erzwingen, indem fireWillEnter Triggern auf eine Ansicht Controller

viewController.fireWillEnter(); 
+0

müssen wir Import für ionic2 hinzufügen @paulitto –

+0

@YokeshVaradhan ja Sie müssen es von ionic-eckig importieren – paulitto

3

diese Antwort gefunden here, (bitte beachten Sie vor allem die Linie this.navCtrl.setRoot(this.navCtrl.getActive().component);, die bei weitem die einfachste Lösung, die ich kenne vorhanden Seite neu zu laden für Ionic 2 & 3 und höhere Versionen von Angular (Mine ist 4), so durch Kredit entsprechend:

RELOAD AKTUELLE SEITE

import { Component } from '@angular/core'; 
import { NavController, ModalController} from 'ionic-angular'; 

@Component({ 
    selector: 'page-example', 
    templateUrl: 'example.html' 
}) 
export class ExamplePage { 

    public someVar: any; 

    constructor(public navCtrl: NavController, private modalCtrl: ModalController) { 

    } 

    refreshPage() { 
    this.navCtrl.setRoot(this.navCtrl.getActive().component); 
    } 

} 

Wenn Sie wollen RELOAD eine andere Seite bitte die Verwendung folgende (Anmerkung this.navCtrl.setRoot(HomePage);:

import { Component } from '@angular/core'; 
import { NavController, ModalController} from 'ionic-angular'; 
import { HomePage } from'../home/home'; 

@Component({ 
    selector: 'page-example', 
    templateUrl: 'example.html' 
}) 
export class ExamplePage { 

    public someVar: any; 

    constructor(public navCtrl: NavController, private modalCtrl: ModalController) { 

    } 

    directToNewPage() { 
    this.navCtrl.setRoot(HomePage); 
    } 

} 
0

Hier ist, was für mich gearbeitet zu Refresh nur aktuelle Seite -

Ich versuche refreshMe Funktion aufzurufen, wenn ich onDelete aus meiner Sicht Seite,
Sehen Sie, wie mein page.ts looks-

export class MyPage { 
    lines of code goes here like 
    public arr1: any; 
    public arr2: any; 

    public constructor(private nav: NavController, navParams: NavParams) { 
     this.nav = nav; 

     this.arr1 = []; 
     this.arr2 = []; 
     // console.log("hey array"); 
    } 

    onDelete() { 
     perform this set of tasks... 
     ... 
     ... 
     refreshMe() 
    } 


    refreshMe() { 
     this.nav.setRoot(MyPage); 
    } 
} 
Datei rufen

Dies aktualisiert nur die aktuelle Seite.
Wir können diese Funktion auch aus Sicht aufrufen, wenn wir as-- brauchen

<ion-col width-60 offset-30 (click)="refreshMe()"> 
    .... 
    .... 
</ion-col>