Comment Actualiser une Composante Angulaire
Je suis en train de travailler sur un Angulaires du projet. Je suis aux prises avec l'actualisation de l'action dans un composant.
Je voudrais actualiser le routeur sur le bouton cliquez sur.
J'ai le bouton actualiser quand je clique sur le composant/routeur besoin d'être rafraîchi.
J'ai essayé window.location.reload()
et location.reload()
ces deux ne sont pas adaptés à mon besoin. S'il vous plaît aider si quelqu'un au courant de ça.
- Pouvez-vous partager votre code dans cette question ? ce que vous êtes tenté.
- c'est un code complexe, il est N le nombre de ligne de code, difficile à partager
- normalement, il n'est pas nécessaire de recharger un composant. Vous pouvez avoir une fonction (par exemple, appeler "redémarrer") et d'appeler la fonction dans le bouton Actualiser. Si vous avez besoin de vous abonner à changer de chemin, ou d'un autre service, utilisez la fonction ngOnInit -votre composant doit s'étend OnInit-, pas le constructeur
Vous devez vous connecter pour publier un commentaire.
Après quelques recherches, et de modifier mon code comme ci-dessous, le script a fonctionné pour moi. Je viens d'ajouter la condition:
"your actualComponent"
avec une variable. La variable a la valeur est définie surthis.location.path()
avant l'appel ànavigateByUrl
. De cette façon, pas besoin de passer des paramètres à partir de composant appelant ou en double/pass autour des routes.'/'
où/RefrshComponent
est, et pour[Your actualComponent"]
vous venez de passer l'url (et/ou params) que vous souhaitez recharger commethis.router.navigate(["/items"])
. Ce hack essentiellement redirige vers le haut de l'URL, puis très vite de retour à la destination de l'URL, ce qui est imperceptible pour la plupart des utilisateurs et semble être la plus élégante hack pour ce faire il suffit.'/'
que mon mannequin route il va (viaredirectTo
) à l'endroit où mon app-routage.le module.ts redirige sur un chemin de''
(chaîne vide) et s'arrête, ne pas procéder à l'achèvement de la route dans lanavigate()
appel. Si j'utilise un inexistante chaîne de caractères (par exemple/foo
) que mon mannequin route, il va (viaredirectTo
) à l'endroit où mon app-routage.le module.ts redirections pour**
(tout le reste) et s'arrête de nouveau, ne va pas à la vraie route. Curieusement, la barre d'URL est modifiée pour le parcours réel. Toute réflexion sur ce qui est différent ici?Utiliser le cette.ngOnInit(); pour recharger le même composant au lieu de recharger la page entière!!
L'ajout de ce code pour le composant requis est le constructeur qui a travaillé pour moi.
Assurez-vous de
unsubscribe
de cette mysubscription a dansngOnDestroy()
.Reportez-vous à ce fil de discussion pour plus de détails - https://github.com/angular/angular/issues/13831
Heureusement, si vous utilisez Angulaire 5.1+, vous n'avez pas besoin de mettre en œuvre un hack plus que la prise en charge native a été ajouté. Vous avez juste besoin de ensemble onSameUrlNavigation pour "recharger" dans le RouterModule options :
Plus d'informations peuvent être trouvées ici: https://medium.com/engineering-on-the-incline/reloading-current-route-on-click-angular-5-1a1bfc740ab2
router.onSameUrlNavigation = 'reload'
propriété de injectés Routeur, trop.onSameUrlNavigation
est destiné à reinvoke Gardes/Résolveurs, et de ne pas recharger déjà acheminé composants. Voir github.com/angular/angular/issues/21115 pour en savoir plus sur cette. Cette solution fonctionne pour les grandes applications les plus complexes à l'aide de Gardes/Résolveurs mais échoue pour des exemples simples.Cela peut être réalisé via un hack, Accédez à quelques exemple de composant, puis naviguez jusqu'à l'élément que vous souhaitez recharger.
Dans mon application j'ai composant et toutes les données proviennent de l'API dont je suis l'appel en Composant le constructeur.
Il y a un bouton en qui je mets à jour ma page de données. sur le bouton cliquez sur j'ai enregistrer des données dans le back-end et actualiser les données.
Donc, pour rafraîchir les composants, comme par mon exigence est uniquement pour actualiser les données.
si c'est également votre exigence, d'utiliser le même code écrit dans le constructeur du composant.
Autre manière d'actualiser (dure) d'une page dans angulaire 2 comme cette
c'est ressembler à f5
kdo