Когда мы конструируем внедрить ViewContainerRef в директиву, это ViewContainerRef элемент, на котором объявлена директива.
Да, он ссылается на тот же элемент DOM, на который ссылается директива,
Например:
@Directive({...})
public constructor MyDirective {
public cosntructor(el: ElementRef, view: ViewContainerRef) {
console.log(el.nativeElement === view.element.nativeElement); // prints TRUE
}
}
Если мы сейчас сделаем vc.createComponent (...), будет ли этот компонент создан внутри элемента p?
Да, потому что ViewContainerRef
имеет много просмотров.У него есть методы length
и get(index: number)
, которые позволяют вам получить ViewRef
прикрепленных представлений.
Таким образом, вы можете вызывать vc.createComponent(...)
несколько раз, и у этого ViewContainerRef
будет больше Просмотры добавлены к нему.Добавленные виды - это представление хоста из нового компонента.