web-dev-qa-db-fra.com

Comment recharger une page dans angular2

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.

9
Krishna

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();
        });
    }
}
13
Mani

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]);
   }
2
mayur

Cela fonctionne pour moi:

method().subscribe(
   location.reload();
);
1
Gourav Bhatia

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

1
israel

Qu'en est-il de toogle la visibilité avec 

   *ngIf="auth.loggedIn()"

cela fait un bien meilleur UX

0
Reinhard