J'ai une page pour modifier l'utilisateur, elle contient des composants enfants. Chaque composant enfant peut changer ou faire quelque effet sur son composant parent.
Donc, au lieu d’émettre les modifications au parent et de mettre à jour certains champs, j’ai fait un "rechargement" de la page en cours avec
private route: ActivatedRoute;
reload(){
this.router.navigate(["/admin/user/edit/"+this.user.id]);
}
Fondamentalement, il redirige vers la page en cours. Par exemple, la page actuelle est http://web.info/admin/user/edit/9 elle sera redirigée vers cette page avec l'espoir que toutes les données de cette page seront rechargées avec les données les plus récentes. .
mais il semble que l'angulaire ne redirigera pas/ne rechargera pas la même page avec le router.navigate
Comment dois-je recharger une page en cours?
Modifier:
Voici la raison pour laquelle je dois recharger la page au lieu de mettre à jour manuellement les données sur la page en cours. Je dois faire des mises à jour sur Other Component. Lorsque j'aurai fait la mise à jour, cela ajouterait quelque chose à History Component. Je dois actualiser le composant utilisateur et le composant historique en même temps, car les deux composants sont affectés par les modifications apportées à Autre composant.
cela fonctionnera à 100%. Je l'ai utilisé dans mon code.
load(val) {
if (val == this.router.url) {
this.spinnerService.show();
this.router.routeReuseStrategy.shouldReuseRoute = function () {
return false;
};
}
}
c'est un exemple de la façon dont j'ai utilisé. Utilisez la partie suivante dans votre code
this.router.routeReuseStrategy.shouldReuseRoute = function () {
return false;
};
Parce que c'est le même composant. Vous pouvez écouter le changement de route en injectant la ActivatedRoute
et en réagissant aux modifications des paramètres et des paramètres de requête, ou vous pouvez modifier la valeur par défaut RouteReuseStrategy
, afin qu'un composant soit détruit et restitué lorsque l'URL change au lieu de réutilisé.