Lorsque nous transmettons un model
au composant enfant et qu'il le modifie, les valeurs sont simplement reflétées dans la variable locale des composants enfants et ne sont pas disponibles pour le parent. Pouvons-nous transmettre des valeurs par référence du parent à l'enfant. Les changements y sont donc également visibles.
J'ai implémenté la même chose en utilisant un observable
au niveau de la couche service. Mais ne pouvons-nous pas passer par référence par @Input
?
Les valeurs primitives (string
, num
, boolean
, références d'objet) sont transmises par valeur (copiées), les objets et les tableaux sont transmis par référence (les deux composants obtiennent une référence à la même instance d'objet).
Enveloppez simplement vos valeurs primitives dans des objets et les modifications seront reflétées des deux côtés.
La détection des modifications Angular2 ne détectera pas les modifications des valeurs dans les tableaux ou les propriétés des objets (sauf lorsque les expressions de liaison les traitent).