2017-10-11 2 views
0

Dans mon application, j'ai une liste de contacts qui sont chargés lorsque l'itinéraire /contacts se charge et si un utilisateur clique sur un contact spécifique, je charge l'itinéraire enfant /contacts/view qui est supposé pour afficher le détail de ce contact.angulaire + ngrx comment extraire des données si le composant est déjà initialisé

Lorsque /contacts/view/:id charges pour la première fois (par exemple/contacts/view/1), ngOnInit() se déclenche une action de l'expédition LoadContact qui est responsable d'obtenir les données de contact du serveur. Toutefois, si je navigue vers un autre contact en cliquant sur un autre élément de la liste (dis/contacts/view/2), le ngOnInit() ne se déclenche pas et je ne parviens pas à obtenir les données du serveur.

Une idée sur la façon dont je peux m'assurer que le composant d'affichage récupère toujours de nouvelles données du serveur sur n'importe quel type de navigation (première charge et navigations ultérieures)?

Merci, Gab

Répondre

1

Vous devez utiliser Activated Route pour cette

ngOnInit() { 
    this.sub = this.route.params.subscribe(params => { 
     this.id = +params['id']; 

     // dispatch action to load the details here. 
    }); 
    } 
+0

Merci! J'utilisais par erreur 'this.route.snapshot' qui ne renvoie pas un observable donc je ne souscris pas aux changements suivants – gabric