J'essaie de recharger la même URL dans Angular 2 à l'aide de router.navigate mais cela ne fonctionne pas . Url: http: // localhost: 3000/landing Scénario: I suis sur http: // localhost: 3000/landing et maintenant je change un paramètre particulier de la page qui devrait recharger la page.
Code:
let link = ['Landing'];
this.router.navigate(link);
Accédez à un composant factice, puis au composant que vous souhaitez recharger . // le deuxième paramètre __ skipLocationChange = true pour éviter cette url dans le bouton Précédent
this.router.navigateByUrl('/DummyComponent', true);
this.router.navigate(["Landing"]);
this.router.navigateByUrl('/DummyComponent', {skipLocationChange: true}).then(()=>
this.router.navigate(["Landing"]));
J'ai réussi à implémenter le rechargement d'un composant en utilisant PlatformLocation: onPopState et NgZone: run dans le constructeur. C'était un travail, mais au moins cela fonctionnait comme il était requis.
constructor(
private route: ActivatedRoute,
public router: Router,
private platformLocation: PlatformLocation,
private ngZone: NgZone) {
platformLocation.onPopState(() => {
if(platformLocation.pathname.startsWith("/currentRoute")) {
this.ngZone.run(() => {
console.log("Reloading component");
});
}
});
}
onPopState
a été utilisé car le rechargement devait être déclenché par le bouton Précédent/Suivant du navigateur. De plus, la vérification de pathname
devait être utilisée car la méthode onPopState
était invoquée lors du retour/du suivi dans des itinéraires au moment de l'injection du composant.