Javascript 尝试在angular 9中将组件名称从字符串转换为组件类型时,传入的类型不是ComponentType错误
在模板HTML中:Javascript 尝试在angular 9中将组件名称从字符串转换为组件类型时,传入的类型不是ComponentType错误,javascript,angular,typescript,Javascript,Angular,Typescript,在模板HTML中: <ng-container *ngComponentOutlet="getComponent(item.component); injector: dynamicComponentInjector"> </ng-container> 但是(这不起作用),因为我需要从数据库中获取值,所以我将它作为字符串获取,如“ProductTitleComponent”。我尝试了以下选项,但什么也没发生 获取错误:错误:断言错误:传入的类型不是C
<ng-container *ngComponentOutlet="getComponent(item.component); injector: dynamicComponentInjector">
</ng-container>
但是(这不起作用),因为我需要从数据库中获取值,所以我将它作为字符串获取,如“ProductTitleComponent”。我尝试了以下选项,但什么也没发生
获取错误:错误:断言错误:传入的类型不是ComponentType,它没有“ɵcmp”属性
通过这样做,我能够解决这个问题
getComponent(component){
const comp = { ProductTitleComponent }
return comp[component];
}
将“ProductTitleComponent”视为组件值。在这种情况下,我必须在每次创建组件到comp对象时添加一个组件。是否有更好的解决方案。您甚至没有尝试转换它,您只是传递字符串,显然无法工作。
getComponent(component){
return component as Component; //component = 'ProductTitleComponent'
}
getComponent(component){
return JSON.parse(component); //component = 'ProductTitleComponent'
}
getComponent(component){
const comp = { ProductTitleComponent }
return comp[component];
}