Ich habe eine eckige 1.x-App, die mit einem dynamischen Layout arbeitet. Die App erhält ein Layout JSON mit den Metadaten des Bildschirms und generiert einfach kompilierte Komponenten im laufenden Betrieb und erstellt einen Bildschirm.Kompilieren und Rendern vorhandener Komponenten dynamisch mit Angular 5
Der entsprechende „wichtigen Code“ sieht wie folgt aus:
const element = this.$compile(`<${this.control.type} control="control" data="data"></${this.control.type}>`)(scope);
this.$element.replaceWith(element);
Nun, ich versuche, diese 5 bis Eckige zu wandern und ich habe verstanden, dass Angular 5 die DOM-Manipulation fallen gelassen und die kompilieren $ Funktionalität .
Ich habe rundherum gesucht und gefunden Lösungen, die wissen, wie man dynamisches HTML (zB {{1 + 1}}) und andere veraltete Sachen (vor Angular 5), aber nicht zum Rendern passen dynamisch gemachte Komponenten (und handhabt ihre inneren Bindungen).
Gibt es eine Möglichkeit, diese Art von Funktionalität erreichen kann
was Sie versuchen, in Angular ist immer noch möglich, zu erreichen, diesen Artikel lesen [Hier ist, was Sie über dynamische Komponenten in Angular wissen müssen ] (https://blog.angularindepth.com/here-is-what-you-need-to-know-about-dynamic-components-in-angular-ac1e96167f9e) und [diese Antwort] (https: // stackoverflow. com/a/47472523/2545680), um eine Vorstellung davon zu bekommen, was Sie durch –
gehen müssen, würde ich nicht empfehlen, diesen Weg zu gehen. Ich hatte die gleiche Strategie in AngluarJS, aber sobald wir nach Angular migriert hatten, begannen wir, alle Referenzen auf die Komponenten in einem Service zu halten, und wenn nötig, fügen wir sie nun manuell ein. Der Artikel, den ich verlinkt habe, zeigt, wie man die Komponenten manuell manipuliert. –
@ AngularInDepth.com - Ich war auf der Suche nach etwas ein bisschen anders (kompilieren einer vorhandenen Komponente mit Bindungen im laufenden Betrieb). Mein Hauptproblem bestand darin, den String-Namen der Komponente in einen Typ zu konvertieren. Dieser Link hat einen sehr ähnlichen Anwendungsfall: http://blog.angular.cool/2016/11/dynamic-components-with.html Derzeit ist das der Weg, den ich nahm. Ich habe ein zusätzliches Mapping-Objekt vom Zeichenkettentyp erstellt und die dynamischen Komponenten mit ihren injizierbaren Bindungen erstellt. –