Comment injecter les données dans Angular2 composant créé à partir d'un routeur?
Je suis en train d'essayer de construire un Angular2 prototype (basé sur alpha44) de notre Angular1 application (assez complexe) et je vais essayer de trouver le meilleur modèle/architecture de données lors de l'utilisation des routes et de l'enfant routes.
Dans mon exemple, à partir d'un composant enfant créé à partir d'une route, je veux accéder à une propriété du composant parent (hébergement de la router-outlet
).
Mais lorsque vous créez un composant à partir d'un router-outlet
, vous ne pouvez pas utiliser @Input
et @Output
plus.
Alors, quelle est la meilleure pratique consiste à injecter des données/propriétés, à l'exception de base routeParams
et statique routeData
?
Comment voulez-vous communiquer avec le composant parent sans trop de couplage?
- Regardez ce problème. Autant que je sache maintenant la seule façon de communiquer avec le composant de
router-outlet
est par l'utilisation de DI.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
RouteData
afin de transmettre des données dans les routes. Voir ici et ici. Il me manque encore la partie de l'initialisation de ces données obj de la pièce (voir ma question concernant)Un service partagé peut être utilisé avec les composants ajoutés par le routeur. Pour plus de détails voir https://angular.io/docs/ts/latest/cookbook/component-communication.html
data
de soutien a également été ajoutée à la nouvelle routeur RC.4. Pour plus de détails voir Comment puis-je transmettre des données dans Angulaire à 2 composants lors de l'utilisation de Routage?Angulaire 2 - l'équivalent de routeur résoudre des données pour le nouveau routeur pourrait également être liée.
Vous pouvez passer (injecter) les données de composant enfant à l'intérieur de Routeur de Sortie de composant Parent avec l'Objet,Observables. Vous pouvez trouvé ma solution dans ce vidéo.
Voir le code sur GitHub: https://github.com/tabvn/angular-blog