Angular2 - Komponente dynamisch aus Modul laden

in meiner eckigen App habe ich Folgendes:

export class MyComponent {
    subcompPath = "path-to-subcomp#SubcompClassName";
    @ViewChild("placeholder", { read: ViewComponentRef }) placeholderRef: ViewComponentRef;

/* Constructor where Compiler, ComponentFactoryResolver are injected */

    loadSubcomponent() {
        let [path, componentName] = this.subcompPath.split("#");
        (<any>window).System.import(path)
            .then((module: any) => module[componentName])
            .then((type: any) => {
                return this._compiler.compileComponentAsync(type)
            })
            .then((factory: any) => {
                let componentRef = this.placeholderRef.createComponent(factory, 0);
            });
    }
}

Meine Unterkomponente deklariert Provider und andere Dinge, Direktiven und Pipes.

Und jetzt will RC6 nochmal alles kaputt machen. Komponenten können keine Direktiven und Pipes deklarieren, sie müssen sich jedoch in dem Modul befinden, in dem die Komponente deklariert ist. Also muss ich mit SystemJS nicht die Komponente selbst laden, sondern das Modul. Ok, und dann sollte ich @ verwend

return this._compiler.compileModuleAndAllComponentsAsync(type)

Fine, aber wie erhalte ich einen Verweis auf die Fabrik dieser bestimmten Komponente? Diese Factory ist alles, was ich brauche, der placeholderRef will es in seiner createComponent-Methode, oder?

Ich habe versucht, in den Angular2-Quellcode von Github zu graben, aber er ist ziemlich umfangreich. Ich sollte es mit VS-Code versuchen oder so, mit Intellisense, aber ich bin faul ... und ich sollte dieses Zeug aus der Dokumentation lesen, was ziemlich mangelhaft ist in angle.io für dieses spezielle Argument, bei dem es sich um das verzögerte Laden von Komponenten und Modulen OHNE Router handelt.

Jede Hilfe wird geschätzt, ich denke, die Lösung ist einfach anzuwenden, aber ohne offizielle Dokumentation schwer zu finden.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage