2016-03-01 12 views

risposta

2

ionico 1


Non ho usato ionico 2 ma attualmente im utilizzando ionico 1.2 e se sono ancora utilizzando ui-router di quanto si può utilizzare ricarica: vero in ui-sref

oppure è possibile aggiungere il codice qui sotto al controller di logout

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

angolare 2


Utilizzare

$ window.location.reload();

o

location.reload();

+0

ho già postato link per le risposte di ionic1 .. quindi questo davvero non aiuterà – Basit

+0

Ok Permettetemi di fare un tentativo di volontà torna a te –

+0

Bro stai utilizzando angolare 2 –

0

È necessario implementare l'interfaccia CanReuse e ignorare lo routerCanReuse per restituire false. Quindi, prova a chiamare router.renavigate().

Il componente dovrebbe essere così:

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

E poi, quando si esegue login/logout, chiamare:

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

cosa dire 'location.reload();', non funzionerebbe? – Basit

0

Si tratta di un hack, ma funziona.

Avvolgere la logica che segue la regolazione modello in un setTimeout e che dà il browser un momento per fare il refresh:

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

Per ionica 2 funziona per me quando si forza ricaricare la pagina innescando fireWillEnter su un controller di vista

viewController.fireWillEnter(); 
+0

dobbiamo aggiungere importazione per ionic2 @paulitto –

+0

@YokeshVaradhan si avrete bisogno di importarlo da ionico-angolare – paulitto

3

trovato questa risposta here, (si prega di notare in particolare la linea this.navCtrl.setRoot(this.navCtrl.getActive().component); che è di gran lunga la soluzione più semplice che ho incontrato per ricaricare la pagina attuale per ionica 2 & 3 e versioni successive di angolare (il mio è 4), in modo di credito a causa di conseguenza:

ricaricare la pagina CORRENTE

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); 
    } 

} 

Se volete ricaricare un DIVERSO PAGINA si prega di utilizzare il seguente (nota 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

Ecco che cosa ha funzionato per me a aggiornamento solo pagina corrente -

Sto cercando di chiamare la funzione refreshMe quando chiamo onDelete dalla mia pagina di visualizzazione,
Guarda come il mio file 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); 
    } 
} 

Questo è solo l'aggiornamento della pagina corrente.
Possiamo anche chiamare questa funzione da vista se abbiamo bisogno as--

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