有没有办法从动态创建的组件中获取ViewContainerRef?
我的动态创建组件里面有一个ngContent元素,我想在动态创建后填充它.
我的动态创建组件里面有一个ngContent元素,我想在动态创建后填充它.
export class Example { @ViewChild('content',{ read: ViewContainerRef }) //normal way content: ViewContainerRef; ... ngAfterViewInit(){ let Box1=this.content.createComponent(this.BoxFactory); Box1.instance.title="Dynamic (1)"; // HERE: the Box1 has a ng-content area which i want to fill. } }
我想一些解决ViewChild而不是使用装饰器的手动方法.一些想法?
非常感谢.
解决方法
我不确定如何动态添加viewchild.但是,如果动态ViewContainerRef是您想要的,您可以尝试使用此解决方案:
在html文件中创建:
<div id="test"></div>
在您的组件中创建:
let nodeElement = document.getElementById("test"); let compFactory = this.componentFactoryResolver.resolveComponentFactory(ChildComponent); let component = compFactory.create(this.viewContainerRef.injector,null,nodeElement);