当我们构造函数包含在指令注入ViewContainerRef
,是ViewContainerRef
该指令被宣布的元素。
例如<p [someDirective]="value"></p>
并与构造器注入:
constructor(vc: ViewContainerRef) {
//The ViewContainerRef is bound to the p element
}
如果我们现在做vc.createComponent(...)
会该组件的p
元素中创造出来的?
当我们构造函数包含在指令注入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
将加入到更景色。被添加的意见是从所述新组件的主体视图。