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.