typescript ViewContainerRef

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript ViewContainerRef相关的知识,希望对你有一定的参考价值。

// 这里是通过createEmbeddedView来创建,其中templateRef是TemplateRef

if (!condition) {
  this.viewContainer.createEmbeddedView(this.templateRef);
} else {
  this.viewContainer.clear();
}
// 这里是通过ViewContainerRef的createComonent方法来创建

// 创建factory
let componentFactory = this.componentFactoryResolver.resolveComponentFactory(adItem.component);

// 通过directive(adHost)来获取ViewContainerRef,这里是一个<ng-template></ng-template>
let viewContainerRef = this.adHost.viewContainerRef;
viewContainerRef.clear();

// 调用其createComponent来创建
let componentRef = viewContainerRef.createComponent(componentFactory);

// 设置其@Input()参数
(<AdComponent>componentRef.instance).data = adItem.data;

// NOTE:
// 通常,Angular编译器会为模板中所引用的每个组件都生成一个ComponentFactory类。 但是,对于动态加载的组件,模板中不会出现对它们的选择器的引用。
// 要想确保编译器照常生成工厂类,就要把这些动态加载的组件添加到NgModule的entryComponents数组中:
// entryComponents: [ HeroJobAdComponent, HeroProfileComponent ],

以上是关于typescript ViewContainerRef的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript入门五:TypeScript的接口

TypeScript系列教程--初探TypeScript

TypeScript入门三:TypeScript函数类型

typescript使用 TypeScript 开发 Vue 组件

认识 TypeScript

Learining TypeScript TypeScript 简介