Comment recharger une page dans angular2.
Pendant la recherche sur le net, j’ai reçu un code "this._router.renavigate()"
pour recharger la page, mais il semble que cela ne fonctionne pas avec la dernière version de angular2.
Un autre moyen est 'window.location.reload()'
mais ce n’est pas la manière angulaire de le faire.
Si vous voulez vraiment recharger la page, vous devez exécuter location.reload () en dehors de la zone angulaire.
this.zone.runOutsideAngular(() => {
location.reload();
});
testé avec RC6
Exemple complet
import { Component, NgZone } from "@angular/core";
@Component({
templateUrl: "template.html"
})
export class ReloadComponent{
constructor(
private zone: NgZone) {
}
reloadPage() { // click handler or similar
this.zone.runOutsideAngular(() => {
location.reload();
});
}
}
Pour partiel il y a moyen d'écrire votre propre fonction
public renavigate(): void {
let params: Object = {};
Object.assign(params, this.routeParams.params);
params['ref'] = (params['ref'] === ref) ? ref + new Date().getTime() : ref;
this.router.navigate(['Foo', params]);
}
Cela fonctionne pour moi:
method().subscribe(
location.reload();
);
J'ai eu le même problème et c'est ce qui a fonctionné pour moi:
import { Location } from '@angular/common';
constructor(private location: Location) {}
ngOnInit() { this.load(); }
load() {
this.location.reload();
}
Qu'en est-il de toogle la visibilité avec
*ngIf="auth.loggedIn()"
cela fait un bien meilleur UX