Angular 2 - Component Factory mit einem String auflösen

Dies ist für die 2.1.0 Final Release-Versionen von Angular.

Ich versuche, eine Komponente, deren Typ aus einer Konfigurations-JSON-Datei übergeben wurde, dynamisch zu instanziieren. Das Beste, was ich finden kann, istComponentFactoryResolver, aber alle Verwendungen, die ich bis auf eine gefunden habe, scheinen tatsächlich zu vergehenType Objekte zum Resolver.

Gibt es eine Möglichkeit, das @ zu bekommType aus einer Zeichenfolge? Da mir die Übergabe des Typs als Zeichenfolge derzeit den Fehler liefert:

No component factory found for MyComponent

Relevanter Code:

StructureBuilder-Komponente:

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 ist ein Array von Zeichenfolgen, die das @ verwendeType als Wert.

Und in der Moduldefinition (Structure.module.ts)

@NgModule({
    declarations: [
        MyComponent,
        StructureBuilder_Cmp
    ],
    entryComponents: [
        MyComponent
    ]
    //Etc...
});

Soweit sich aus den spärlichen Dokumenten ergibt, sollten Sie genau so vorgehen.

Wenn ich den von @ übergebenen dynamischen String ändeconfigComponents[i] zur tatsächlich importierten Typreferenz fürMyComponent, Es klappt

Also im Grunde ist die Frage: Gibt es eine Möglichkeit, @ zu verwendresolveComponentFactory mit Strings, um eine Komponente aufzulösen, und wenn nicht, gibt es eine Möglichkeit, ein @ zu erhaltType Referenz von einem String-Wert?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage