2017-05-18 2 views
0

Ich möchte die HTML-Vorlage für Angular 2-Komponente dynamisch bestimmen. Ist das möglich? Wie können wir diese Funktionalität in Angular erreichen?Dynamische Vorlage HTML für Angular 2-Komponente

mein Ziel ist es, die gleichen Code-Basis/Komponenten aber verschiedene HTML-basierte einige Konfiguration/URL des Servers zu haben? ist das möglich?

+0

ist Sind Sie AOT Kompilation mit? Das wird die Dinge komplizieren. Andernfalls, wenn Sie SystemJS oder etwas verwenden, können Sie wahrscheinlich eine Variable einfach in den Dekorator '@Component ({templateUrl: \' $ {config.serverUrl} /someView.html \ '}) übergeben. – Steveadoo

+0

Funktioniert das? https://angular.io/docs/ts/latest/cookbook/dynamic-component-loader.html – wannadream

Antwort

1

Wenn möglich würde ich empfehlen, andere Methoden zu versuchen, um das zu erreichen, was Sie versuchen zu tun. In meinem aktuellen Projekt habe ich das ursprünglich mithilfe von compileModuleAndAllComponentsAsync ausgeführt, um im Wesentlichen ein Modul, eine Komponente zu erstellen und dieses Modul zur Laufzeit zum Projekt zu kompilieren und hinzuzufügen, und sie manuell in die aktuelle Komponente auf dem Bildschirm mithilfe eines ViewRefs zu injizieren.

jedoch (Weitere Informationen über das können here zu finden), das ist wirklich schnell außer Kontrolle geraten kann.

Dies hat uns auch daran gehindert, webpack zu verwenden, da es für webpack nicht möglich war zu wissen, welche Templates zur Kompilierzeit benötigt wurden, und sie alle auf eine Komponente zu beziehen. Dies hat uns daran gehindert, die Angular CLI zu verwenden, die schlecht war.

Statt all dem würde ich vorschlagen, einen Weg zu finden, dies mit Routing zu tun und zu verschiedenen Komponenten zu routen. Dies bedeutet, dass Sie eine Komponente für jede mögliche Vorlage benötigen, die Sie haben.

Sie könnten auch die dynamic component loader Blick in da, dass eine unterstützte Funktion von Angular 2.