html - Når en ViewContainerRef injiseres i en direktiv, hvilket element er den bundet til?


Når en ViewContainerRef blir injisert i en direktiv, hvilket element er den bundet til?

For eksempel hvis vi har en mal:

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

Og konstruktøren for vcdirective ser slik ut:

  constructor(vc: ViewContainerRef) {
  }

Er elementet som vc:ViewContainerRef er bundet til span-elementet?

Svar #1

Ja, det vil binde seg til span-elementet. Hvis du logger vc i konstruktøren, vil du se ViewContainerRef-objektet, sjekk elementegenskapen til det, du vil finne span der. Men når du legger til visningen i beholderen, vil den bli lagt til ved siden av span i stedet for å bli satt inn i det, og span vil bli stående uten innhold.

Svar #2

Ja, det er bundet til en span. ViewContainerRef representerer en beholder hvor en eller flere visninger kan festes. Vi kan bruke metodene dens som createEmbeddedView() og createComponent(). ViewContainerRef brukes til å bygge dynamiske komponenter.

Relaterte artikler