Angular 2 - Resolve Component Factory со строкой
Это для окончательной версии 2.1.0 Angular.
Я пытаюсь динамически создать компонент, тип которого передается из файла конфигурации JSON. Лучшее, что я могу найти, этоComponentFactoryResolver
Однако все случаи, которые я нашел, кроме одного, кажутся актуальнымиType
возражает против резольвера.
Есть ли способ получитьType
из строки? Потому что в настоящее время передача типа в виде строки дает мне ошибку:
No component factory found for MyComponent
Соответствующий код:
Компонент StructureBuilder:
private renderComponent(config:any) {
let configComponents = config.components;
if(config.hasOwnProperty('components') && configComponents.length){
for(let i = 0, len = configComponents.length; i < len; i++){
this.componentResolver.resolveComponentFactory(configComponents[i]);
}
}
}
где config.components - это массив строк, которые используютType
как ценность.
И в определении модуля (Structure.module.ts)
@NgModule({
declarations: [
MyComponent,
StructureBuilder_Cmp
],
entryComponents: [
MyComponent
]
//Etc...
});
Насколько можно судить по разрозненным документам, это именно то, что вы должны делать.
Если я изменю динамическую строку, переданную изconfigComponents[i]
на фактическую импортированную ссылку типа дляMyComponent
, оно работает.
Итак, в основном, вопрос: есть ли способ использоватьresolveComponentFactory
со строками для разрешения компонента, и если нет, есть ли способ получитьType
ссылка из строкового значения?