Je dois recharger une page après le routage d'un nouveau composant
J'ai essayé l'emplacement.reload (), mais il continue à recharger sans arrêter p> attendu Résultat: p> J'ai besoin de recharger une page uniquement une seule une seule une fois p> résultat réel: p> Il recharge plusieurs fois P> P>
7 Réponses :
en JavaScript, vous pouvez utiliser p>
emplacement.Reload () p>
pour la recharge de la page p>
Si vous souhaitez recharger le composant enfant, utilisez cela.ngoninit (); (sur le composant enfant qui peut être rafraîchi) pour recharger simplement ce composant enfant.
parent.component.ts p> enfant.component.ts p> refresh() {
this.ngOnInit()
}
Je ne comprends pas votre cas d'utilisation, mais il y a beaucoup de moyen de faire ce que vous voulez.
Je vous propose une manière avec localStorage. p>
Vérifiez si un localStorage existe. Par défaut, la clé n'existe pas, alors vous le créez et rechargez également la page.
Après l'actualisation, vous vérifiez la même clé (qui existe maintenant). Donc, vous ne rechargez pas la page et retirez la clé de la prochaine fois P>
ngOnInit() {
if (!localStorage.getItem('foo')) {
localStorage.setItem('foo', 'no reload')
location.reload()
} else {
localStorage.removeItem('foo')
}
}
Vous pouvez importer localisation puis appelez la méthode de rechargement pour recharger la page p>
Créer un service pour stocker l'itinéraire précédent. Obtenez l'itinéraire précédent dans votre composant s'il a une route ou la route que vous définissez dans la condition, puis rechargez.
constructor(private previousRouteService: PreviousRouteService){}
Ici, vous pouvez utiliser le stockage local comme ci-dessous
ngOnInit(){
const firstTime = localstorage.getItem('key')
if(!firstTime){
localstorage.setItem('key','loaded')
location.reload()
}else {
localStorage.removeItem('key')
}
}
Vous devez enregistrer (par exemple) "ischargé avant" Boolean dans une variable et vérifiez-le avant de recharger votre page. Mais une variable qui conserve les données après la page rechargée! (pas ceux locaux)
de
localStorage code> est un bon choix:
function reloadIfNecessary() {
var isLoadedBefore = localstorage.getItem("IsLoadedBefore");
if(isLoadedBefore=="true")
return;
}
else {
localstorage.setItem("IsLoadedBefore",true);
/*use your reload method*/
})
Pouvez-vous montrer plus de code? Comme où vous appelez nconinit ()
Ngoninit est appelé lorsque le composant est chargé
@Sudhin, pouvez-vous décrire votre cas d'utilisation? Pourquoi avez-vous besoin de recharger une seule fois?
Quand voulez-vous déclencher la recharge? Si c'est surinit, il va courir ce code chaque fois que la page est rechargée.
Non, je n'appelle aucune API ou quoi que ce soit, j'ai besoin de recharger un composant comme des soyons qu'il a été chargé
Selon votre code, il continue à être rechargé. Quel est votre cas d'utilisation?
J'ai besoin de recharger une page dès que le composant est chargé de manière complète pour rafraîchir une page
Mais si vous rechargez, le composant est chargé et si votre composant est chargé, vous souhaitez recharger, ceci est une création d'une boucle infinie
window.location.rélectionnez () Utilisation JavaScript
Dupliqué possible de Recharger une page une fois en Angular2
Utilisez
, remarquez le support carré autour de la source
@Sudhin j'ai remis votre question à l'original. Vous ne pouvez pas modifier la question à une autre question alors qu'elle a des réponses. Les réponses seraient hors de propos de la question alors.