我正在 *ngFor 中设置 ngTemplateOutlet,如下面的代码片段
<ul>
<li *ngFor="let item of list">
<ng-container [ngTemplateOutlet]="item.type"></ng-container>
</li>
</ul>
我在哪里list = [ {type: 'templateOne'}, {type: 'templateTwo'} ]
定义了如下模板。
<ng-template #templateOne></ng-template>
<ng-template #templateTwo></ng-template>
上面的模板片段与下面提到的消息一起引发错误
TypeError: templateRef.createEmbeddedView is not a function
at ViewContainerRef_.push../node_modules/@angular/core/fesm5/core.js.ViewContainerRef_.createEmbeddedView (core.js:21600)
at NgTemplateOutlet.push../node_modules/@angular/common/fesm5/common.js.NgTemplateOutlet.ngOnChanges (common.js:4026)
at checkAndUpdateDirectiveInline (core.js:22085)
由于item.type
使用的ngTemplateOutlet
是字符串类型,我怀疑它没有解析为 templateReference 变量。
如何将字符串转换为 templateReference 实例?