2
votes

Lorsqu'un ViewContainerRef est injecté dans une directive à quel élément est-il lié?

Lorsqu'un ViewContainerRef est injecté dans une directive à quel élément est-il lié?

Par exemple, si nous avons un modèle:

  constructor(vc: ViewContainerRef) {
  }

Et le constructeur de la vcdirective ressemble à ceci:

template `<div><span vcdirective></span></div>`

Est l'élément auquel le vc: ViewContainerRef est lié à l'élément span ?


0 commentaires

3 Réponses :


0
votes

1 commentaires

Puisque vous utilisez l'injection de constructeur sur le composant, ViewContainerRef est lié à l'élément hôte, qui dans ce cas sera le sélecteur vcr IIUC.



4
votes

Oui, il sera lié à l'élément span. Si vous console le vc dans le constructeur, vous verrez l'objet ViewContainerRef, vérifiez la propriété de l'élément, vous y trouverez span . Mais lorsque vous attacherez la vue dans le conteneur, elle sera ajoutée à côté de span au lieu d'être insérée à l'intérieur et span restera suspendu.


0 commentaires

1
votes

Oui, il doit s'étendre. ViewContainerRef représente un conteneur dans lequel une ou plusieurs vues peuvent être jointes. Nous pouvons utiliser ses méthodes telles que createEmbeddedView () et createComponent () . ViewContainerRef est utilisé pour créer des composants dynamiques .


0 commentaires