Comment recharger la page en cours sur Angular 2 ?
si je suis en page 2 (pagination) et que je rafraîchis la page, la page 1 (URL pageload) s'affiche. mais je veux que je rafraîchisse la page 2 et qu'elle apparaisse en page 2.
Comment recharger la page en cours sur Angular 2 ?
si je suis en page 2 (pagination) et que je rafraîchis la page, la page 1 (URL pageload) s'affiche. mais je veux que je rafraîchisse la page 2 et qu'elle apparaisse en page 2.
Cela devrait être techniquement réalisable en utilisant window.location.reload()
:
HTML :
<button (click)="refresh()">Refresh</button>
TS :
refresh(): void {
window.location.reload();
}
Mise à jour :
Voici un exemple de base StackBlitz exemple montrant le rafraîchissement en action. Remarquez que l'URL sur le chemin "/hello" est conservé lorsque window.location.reload()
est exécuté.
Il n'existe pas de méthode simple pour le transfert entre plates-formes. Vous devez vérifier sur quelle plate-forme il s'agit et effectuer le rechargement approprié pour cette plate-forme.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Que voulez-vous obtenir en rechargeant ? Peut-être existe-t-il d'autres moyens d'atteindre le même objectif ?
0 votes
@MadhuRanjan Je veux réinitialiser tous les modèles mais pas valeur après valeur,
0 votes
Vous pouvez avoir toutes les fonctions de récupération de modèle dans une méthode commune et l'appeler en cas de besoin.
0 votes
@MadhuRanjan est-il impraticable de recharger la page simlpy ?
0 votes
Bien sûr, vous pouvez utiliser
window.location.reload()
comme dans la réponse ci-dessous, mais cela va à l'encontre de l'objectif du SPA, Santé !0 votes
@MadhuRanjan mais il ne s'agit pas d'un système multiplateforme.
0 votes
Quelle est la plate-forme que vous visez ? Il est supporté par tous les principaux navigateurs, IE \Edge\Chrome\Firefox\Safari.
0 votes
@MadhuRanjan si je fonctionne avec chrome sur linux Windows.location ne fonctionnera pas.
2 votes
En général, les fonctionnalités du navigateur fonctionnent indépendamment de la plate-forme, s'il est disponible officiellement pour le système d'exploitation concerné. Ceci étant dit, je vous suggère de créer une nouvelle question sur l'OS concernant la façon de contourner le problème.
window.location.reload()
pour chrome sur Linux, ce serait l'endroit idéal pour obtenir votre réponse, et ensuite vous pouvez avoir une vérification dans votre code pour obtenir la version du navigateur et avoir une logique autour, Cheers !!!1 votes
FWIW, mon propre cas d'utilisation pour cela est le support multi-langue, puisque depuis la v5.1, Angular ne le supporte toujours pas sans faire un déploiement séparé par langue. J'ai une page Razor qui décide du bundle Angular script à charger, en fonction de la préférence de langue qu'elle obtient de la base de données utilisateur du backend ASP.NET Core. Afin de changer la langue après que l'utilisateur ait changé ses préférences, le rechargement de la SPA Angular ne suffit pas, je dois recharger la page Razor entière pour qu'elle charge une SPA Angular différente.
0 votes
Vous pouvez appeler la méthode ngOnInit()