2016-07-15 2 views
1

Ich versuchte, eine Beispielanwendung zu erstellen, in der ich eine Komponente dynamisch auf einem Button-Klick-Ereignis von der übergeordneten Komponente laden wollte. Aber wenn ich auf die Schaltfläche klicke, wird die Komponente nicht geladen, stattdessen erhalte ich den folgenden Fehler in der Browserkonsole. Bitte besuchen Sie die plunker für AnwendungscodeNicht in der Lage, Komponente dynamisch zu laden

zone.js:461Unhandled Promise rejection: Cannot read property 'createComponent' of undefined ; Zone: angular ; Task: Promise.then ; Value: TypeError: Cannot read property 'createComponent' of undefined 
    at eval (https://run.plnkr.co/EQ3xbfuUPWfMTU2C/src/app.ts!transpiled:38:45) 
    at ZoneDelegate.invoke (https://npmcdn.com/[email protected]/dist/zone.js:323:29) 
    at Object.onInvoke (https://npmcdn.com/@angular/core/bundles/core.umd.js:9100:45) 
    at ZoneDelegate.invoke (https://npmcdn.com/[email protected]/dist/zone.js:322:35) 
    at Zone.run (https://npmcdn.com/[email protected]/dist/zone.js:216:44) 
    at https://npmcdn.com/[email protected]/dist/zone.js:571:58 
    at ZoneDelegate.invokeTask (https://npmcdn.com/[email protected]/dist/zone.js:356:38) 
    at Object.onInvokeTask (https://npmcdn.com/@angular/core/bundles/core.umd.js:9091:45) 
    at ZoneDelegate.invokeTask (https://npmcdn.com/[email protected]/dist/zone.js:355:43) 
    at Zone.runTask (https://npmcdn.com/[email protected]/dist/zone.js:256:48) 

Antwort

1

Wenn Sie @ViewChild(Loader, ...) Sie es instanziiert wurde, um sicherzustellen, müssen abfragen. Dafür benötigen Sie Loader zu directives: [...]

directives: [Loader] 
}) 
export class App { 

Plunker example

+0

ich diese Antwort akzeptieren hinzuzufügen, die gleiche Logik/code ich in meinem Projekt beworben haben und versucht, lokal es, enthalten i die Komponente in die zu ladende Richtlinien. aber immer noch bekomme ich die Ausnahme in der Browser-Konsole und die Komponente nicht richtig geladen. können Sie bitte auf diese Abfrage antworten http://stackoverflow.com/questions/38360904/typeerror-cannot-read-property-createcomponent-of-undefined – Krishnan

+0

In dem von Ihnen freigegebenen Plotter, erstellt es die Instanzen mehrmals unter dem anders, ist es stattdessen möglich, die vorhandene Instanz durch die neue Instanz zu ersetzen, wenn ich auf den Button klicke, dh zu irgendeinem Zeitpunkt wollte ich nur eine Instanz geladen haben, irgendwelche Ideen, wie das geht? – Krishnan

+0

Entschuldigung, ich habe Ihren Kommentar vergessen. Der "Posteingang" ist nicht so bequem wie es sein könnte, wenn Sie viele Kommentare bekommen ... Ich antwortete auf http://stackoverflow.com/questions/38442546/how-to-avoid-creating-multiple-instance-of -die-gleiche-Komponente –

Verwandte Themen