This is for the 2.1.0 Final release versions of Angular.
I'm trying to dynamically instantiate a component who's type is passed from a config JSON file. The best thing I can find is ComponentFactoryResolver, however all usages that I have found save one seem to be passing actual Type objects to the resolver.
Is there a way to get the Type from a string? Because presently, passing the type as a string gives me the error:
No component factory found for MyComponent
Relevant code:
StructureBuilder component:
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]);
}
}
}
where config.components is an array of strings that use the Type as a value.
And in the module definition (Structure.module.ts)
@NgModule({
declarations: [
MyComponent,
StructureBuilder_Cmp
],
entryComponents: [
MyComponent
]
//Etc...
});
As far as can tell with the sparse docs, this is exactly how you're supposed to do it.
If I change the dynamic string passed in from configComponents[i] to the actual imported type reference for MyComponent, it works.
So basically, the question is:
Is there a way to use resolveComponentFactory with strings to resolve a component, and if not, is there way to get a Type reference from a string value?