动态加载css文件以进行主题化

doo*_*man 9 angular

我有三个不同颜色主题的css文件,例如theme1.css theme2.css theme3.css

我想根据所选类别加载它们.是否可以在angular2中动态加载css文件?处理这个问题的正确方法是什么?

谢谢!

San*_*ket 12

我不确定这是否正确.但你可以尝试这样 -

    import { Component, Inject } from '@angular/core';
    import { DOCUMENT } from '@angular/platform-browser';

    @Component({
    })

    export class SomeComponent {

        constructor (@Inject(DOCUMENT) private document) { }

        LightTheme() {
            this.document.getElementById('theme').setAttribute('href', 'light-theme.css');


        DarkTheme() {
            this.document.getElementById('theme').setAttribute('href', 'dark-theme.css');
    }
}
Run Code Online (Sandbox Code Playgroud)

参考:https://angular.io/docs/ts/latest/api/platform-b​​rowser/index/DOCUMENT-let.html

看看这是否有帮助.