Actualisation de la composante après avoir fait un routeur.naviguer
Je suis en train de naviguer à partir d'un composant à un autre composant à l'aide de :
this.router.navigate(['/path/'], '_blank');
Le problème est que le composant je suis naviguant à vue, est déjà créé, et sa ngOnInit méthode n'est pas exécuté lorsque je navigue sur la page. Je suis en train d'actualiser les données qui figurent sur la page. C'est dans le ngOnInit fonction du composant cible:
this.sub = this._DataService.getData().subscribe(data=> {
this.data= data;
});
Comment puis-je savoir le composant cible, que les données de la page est toujours actualisé lors d'une navigation?
Je suis en utilisant Ag-Grille pour afficher les données dans un tableau. Dans le NgOnInit fonction:
this.gridOptions.rowData = this.data;
Le composant je suis originaires, est un formulaire pour ajouter un nouvel objet. Après la présentation de l'objet, il doit rediriger vers la grille et de montrer le nouvel objet. C'est pourquoi la Grille doit être mise à jour de ses données, mais à cause de certaines raisons, il ne fait que lorsque j'ai actualiser manuellement à travers un menu de contexte d'action dans la grille, pas sur la navigation.
La fonction envoyer dans le formulaire ressemble à la suivante:
onSubmit(data) {
this._DataService.addData(data.value).subscribe();
this.router.navigate(['/data/']);
}
'_blank'
?Rien, il était toujours là parce que j'ai été jouer avec elle.
OriginalL'auteur merlino | 2017-03-10
Vous devez vous connecter pour publier un commentaire.
Si vous naviguez sur le même itinéraire et que les valeurs de paramètre de modifier, de déplacer le code d'initialisation de
constructor
et l'appeler à partir d'constructor
et lorsque la route params changement:Difficile pour moi de le dire, car je ne peux pas savoir ce qu'il se passe sur votre système. Votre question ne contient pas beaucoup de code.
C'est parce qu'il est vraiment pas beaucoup. Je suis Ag à l'aide de la Grille pour afficher les données dans une table. Je vais ajouter plus d'information à ma question initiale
Je doute que le composant que vous dirigez est déjà créé. Si vous naviguez loin, il sera détruit, si vous revenez en arrière, il sera recréé. Seulement si vous restez à la même route et de naviguer de sorte que seuls les paramètres de la route du changement, le composant va être gardé en vie. Mais c'est difficile à dire parce que votre question ne contient aucune information à ce sujet.
Je peux confirmer que cette méthode fonctionne et le "rafraîchissement" du composant. Ne devrait pas être downvoted car il fait ce que la question se pose. J'ai essayé cette solution et a réussi à renavigate pour le composant, mais j'ai quelque peut seulement ajouter des données, de ne pas commencer avec une feuille blanche (pas une question, mais un heads-up)
OriginalL'auteur Günter Zöchbauer
J'ai résolu en changeant ma onSubmit fonction:
Grâce à cette question: Angular2 de Redirection après la soumission, ne montre pas de mise à jour des données
OriginalL'auteur merlino
j'ai mis en place une redirection composant
.routeur.naviguer(['/redirect/', fenêtre.emplacement.chemin d'accès]);
OriginalL'auteur ueman