web-dev-qa-db-fra.com

Angular2: Passer par référence pour interagir entre les composants

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?

13
Sumit Agarwal

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).

35
Günter Zöchbauer