android - color - Actualizar una página en ionic2
toast ionic 3 (5)
¿Hay alguna manera de actualizar solo una página, es decir, solo una pantalla en ionic2?
Lo intenté :
window.location.reload();
y
location.reload();
pero reconstruye la aplicación ... ¿hay alguna manera de actualizar solo esa página (pantalla particular)?
También probado:
<ion-input *ngIf="no_internet === 1" (click)="refresh($event)"></ion-input>
en TypeScript:
refresh(refresher) {
console.log(''Begin async operation'', refresher);
setTimeout(() => {
console.log(''Async operation has ended'');
refresher.complete();
}, 2000);
}
Yo haría eso: (basado en la respuesta de @Ahmad Aghazadeh)
this.navCtrl.push(this.navCtrl.getActive().component).then(() => {
let index = this.viewCtrl.index;
this.navCtrl.remove(index);
})
=> Empuje esta página una vez más (cargándola de nuevo)
=> Eliminar la página en la que estábamos (usando índice)
Pruebe esto: $window.location.reload(); $route.reload() use to reload route.
$window.location.reload(); $route.reload() use to reload route.
si está utilizando $stateProvider : $state.go($state.current, {}, {reload: true})
;
o
var currentPageTemplate = $route.current.templateUrl;
$templateCache.remove(currentPageTemplate);
$route.reload();
También puede utilizar el refresco iónico para crear una acción de extracción para actualizar en la página
http://ionicframework.com/docs/v2/api/components/refresher/Refresher/
Prueba este código:
this.navCtrl.setRoot(this.navCtrl.getActive().component);
Si está dispuesto a seguir una convención común, he encontrado una manera muy fácil de volver a cargar la vista actual (incluidos todos sus parámetros). Probé esto usando Ionic3, pero todavía debería aplicarse en Ionic 2
Mueva todo su código de inicialización para cada página en ionViewDidLoad()
, que se ejecuta ONCE la primera vez que se carga la vista
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;
}
Desde cualquier otro lugar de la aplicación, puede volver a cargar la vista actual con este código
//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();
}