Salut, j'aimerais pouvoir recharger une page lorsque je change de route, car mon composant doit aller chercher des infos dans un fichier texte mais les informations ne chargent que si la page est refresh.
J'ai donc essayé ceci, mais je ne vois aucun changement:
this.router.navigate([
'print/'
+ this.route.snapshot.params['cat']
+'/'
+ this.route.snapshot.params['subCat']
]);
et également ceci, mais la page ne charge plus rien dans ce cas :
this.router.navigate([
'print/'
+ this.route.snapshot.params['cat']
+'/'
+ this.route.snapshot.params['subCat']
]).then(() => {
window.location.reload();
});
(ma route est censée être: http://localhost:port/print/catégorie/sous-catégorie)
Est-ce que vous auriez une idée de quoi faire ?
Essaie un window.location.href = "ton_url.html"
il me semble que pour utiliser location.reload() tu ne dois pas utiliser de port dans l'url
https://developer.mozilla.org/fr/docs/Web/Security/Same-origin_policy
Deux pages ont la même origine si le protocole, le port (si spécifié) et l'hôte sont les mêmes pour les deux pages.
Le 24 juin 2022 à 22:07:28 :
Essaie un window.location.href = "ton_url.html"
ça change rien 😢mais merci pour ton aide !
Le 24 juin 2022 à 22:15:47 :
il me semble que pour utiliser location.reload() tu ne dois pas utiliser de port dans l'urlhttps://developer.mozilla.org/fr/docs/Web/Security/Same-origin_policy
Deux pages ont la même origine si le protocole, le port (si spécifié) et l'hôte sont les mêmes pour les deux pages.
Angular me met un port par défaut dans l'URL, il peut pas marcher autrement ?
alors, je viens de griser (commenter) des lignes qui se trouvaient juste au-dessus (c'était une autre tentative de ma part de forcer à refresh la page):
// this.router.routeReuseStrategy.shouldReuseRoute = () => {
// return false;
// };
et à présent, Angular recharge la page à l'infini 😭(ça refresh indéfiniment)
c'est curieux car si je fais une redirection vers l'accueil:
this.router.navigate([
'print/'
+ this.route.snapshot.params['cat']
+'/'
+ this.route.snapshot.params['subCat']
]).then(() => {
window.location.href="/home"
});
ça fonctionne ! Par contre, j'ai l'impression que ça ne marche pas à partir du moment où je fais une redirection utilisant des paramètres dans la route je comprends vraiment plus rien
BON, alors, finalement, ça marche bien avec ceci:
this.router.routeReuseStrategy.shouldReuseRoute = () => {
this.commandsService.deleteArr();
return false;
};
en jetant un coup d’œil à la console, je me suis rendue compte que les requêtes GET se faisaient bel et bien. Je pensais qu'elles n'avaient pas lieu, car en changeant de route, les informations du component (fichier .txt chargé dans un tableau) ne changeaient pas (sauf la première ligne du tableau qui s'actualisait, donc bon... )
En fait, le problème venait d'ailleurs: pour actualiser correctement le tableau avec les infos de mon fichier txt, j'ai dû réinitialisé mon tableau pour repartir de zéro (qui correspond à la ligne this.commandsService.deleteArr(); ).
Voilà, c'est tout
Je pensais qu'en changeant de route, je n'aurais pas besoin de réinitialiser mon tableau, mais bon...
1 journée + 1 après midi de flinguée sur ce problème... je commençais à devenir folle 😭
Merci pour ton aide en tout cas xerusmb!