相关疑难解决方法(0)

具有动态模板或templateUrl的Angular 2/4组件

我一直在努力寻找解决方案.

我有一个具有不同"皮肤"的项目,它们基本上是不同的模板/ Css集合.

我试图让我的组件使用基于变量THEME_DIR的皮肤.

不幸的是,我找不到如何实现这一点.我在angular.io上查看了Dynamic Component Loader但没有成功.

我也在这里看了几个答案但没有成功.

有没有人有想法?

这是我到目前为止所尝试的:

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);

    }

}
Run Code Online (Sandbox Code Playgroud)

themes typescript angular

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

angular ×1

themes ×1

typescript ×1