Ich habe versucht, eine Lösung für diese überall zu finden.Angular 2/4 Komponente mit dynamischen Vorlage oder TemplateUrl
Ich habe ein Projekt mit verschiedenen "Skins", die grundsätzlich verschiedene Sätze von Vorlagen/Css sind.
Ich versuche, meine Komponenten verwenden die Haut basierend auf einer Variablen THEME_DIR.
Leider kann ich nicht finden, wie man das macht. Ich schaute in die Dynamic Component Loader auf angular.io ohne Erfolg.
Ich sah auch hier ein paar Antworten ohne Erfolg.
Hat jemand eine Idee?
Das ist, was ich bisher versucht:
import { ComponentFactoryResolver, ViewContainerRef } from '@angular/core';
// @Component({
// templateUrl: '../../assets/theme/'+THEME_DIR+'/login.template.html',
// })
export class LoginComponent implements, AfterViewInit {
private log = Log.create('LoginPage');
constructor(private mzksLsRequestService: MzkLsRequestService,
private componentFactoryResolver: ComponentFactoryResolver,
public viewContainerRef: ViewContainerRef) {
}
ngAfterViewInit() {
let componentFactory = this.componentFactoryResolver.resolveComponentFactory(new Component({
templateUrl: '../../assets/theme/default/login.template.html',
}));
let viewContainerRef = this.viewContainerRef;
viewContainerRef.clear();
let componentRef = viewContainerRef.createComponent(componentFactory);
}
}
Vielen Dank dafür. Ich denke, jetzt ist mein Problem Webpack beschweren sich beim Zusammenstellen der Vorlagen ... Ich muss einen Weg finden, um ... – millerf
Nur auf dem frischen neuen Angular cli-Projekt versucht, funktioniert es gut mit Webpack. Welchen Build-Prozess verwenden Sie? –
Ich verwende eine ionische Boilerplate. Es beschwert sich, wenn ich eine Variable in den Vorlagenpfad einfüge (siehe THEME_DIR in meinem Code), da es scheint, dass es den richtigen Pfad nicht findet – millerf