J'ai construire une application de centre d'employé qui inclut une vue de formulaire et une vue de détails. Après avoir rempli le formulaire et cliquer sur Soumettre, les données d'entrée doivent être affichées dans la vue Détails. J'ai utilisé un employé d'employé pour transférer des données de formulaire au composant de détail. Le problème est que les données ne sont pas transférées sur le composant de détail de la composante formulaire. Quelqu'un peut-il me suggérer une aide? Voici mon code - P>
https://stackblitz.com/edit/angular-bnqyc p>
p. S- S'il vous plaît ne pas forcer le code dans Stackblitz P>
3 Réponses :
Vous devez utiliser ComportosUjecject au lieu de sujet afin que la dernière valeur émise soit disponible pour le nouveau abonné (lorsque le composant de vos informations de votre employé est instancié). P>
La navigation doit également être effectuée après la manipulation de la soumission de formulaire non dans la même touche, de sorte qu'il peut être déplacé vers la fonction Onsubmit (). P>
Regardez l'amélioration de Stackblitz et laissez-moi savoir vos commentaires: https://stackblitz.com/edit/angular-mmqqjk p>
Merci beaucoup monsieur .. ça marche. Merci pour l'aide.
Accepter la réponse dans ce cas
Vous devez utiliser un comportement à la place d'un sujet au service. P>
Un sujet émet immédiatement lorsque le prochain () est invoqué. Dans votre cas, le composant de formulaire envisage ensuite sur le sujet, puis accédez à la composante détaillée, puis le composant de détail abonne au sujet ... mais il est trop tard - le sujet déjà émis et vous avez manqué. < / p>
Un sujet de comportement tient sa dernière valeur et émettre cette valeur lorsque vous vous souscrivez-y. P>
Vous pouvez créer une classe et enregistrer vos données dans une variable comme mentionnée ci-dessous et appelez .nsext () code> de la même manière. private messageSource = new BehaviorSubject<any>({});
currentObject = this.messageSource.asObservable();