Quel est le paramètre read dans @ViewChild pour

Besoin d’aide pour comprendre le sens de {read: ViewContainerRef} dans la déclaration suivante.

@ViewChild('myname', {read: ViewContainerRef}) target; 

Plusieurs variables de différents types peuvent être associées à la balise element avec la variable de modèle #myname .

Pour chaque élément, il y a ElementRef et ViewContainerRef (peut-être d’autres composants ou directives appliqués à cette balise).

Si l’élément est un composant, il y a l’instance du composant.

Il peut également y avoir une ou plusieurs directives appliquées à l’élément

Avec {read: SomeType} vous indiquez quel type doit être renvoyé par l’élément avec la variable de modèle #myname .

Si vous ne fournissez pas le paramètre read , @ViewChild() renvoie le

  • ElementRef instance s’il n’y a pas de composant appliqué, ou le
  • instance de composant s’il y en a.
  • Si vous voulez obtenir quelque chose de différent, vous devez dire explicitement en utilisant read .

Voir aussi angular 2 / typecript: récupérer un élément dans le template