取消以角度4加载的样式表

时间:2017-12-13 12:29:37

标签: angular

我有这个功能来加载样式表,基于用户的选择' en'或者' ar':

addStyleSheet(lang: string) {
        let headID = document.getElementsByTagName('head')[0];
        let link = document.createElement('link');
        link.type = 'text/css';
        link.rel = 'stylesheet';
        link.id = 'widget_styles';link.type = 'text/css';


        headID.appendChild(link);
        if (lang == "ar") {
            link.href = AppGlobals.APP_URL + './assets/css/bootstrap-rtl.css';
        }
        else if (lang == "en") {
            link.href = AppGlobals.APP_URL + './assets/css/bootstrap.css';
        }
    }

我的默认语言是英语,所以第一页工作正常,第一页也是#'选择很好并且成功加载' bootstrap-rtl'但是当我按下' en'再次,' bootstrap-rtl'已加载所以设计崩溃,我试图使用removeChild取消链接css文件,但它没有正常工作,任何想法?

1 个答案:

答案 0 :(得分:0)

在函数调用中禁用CSS元素

构造函数(private myElement:ElementRef,@ Inject(DOCUMENT)私有文档){

}
addStyleSheet() {
        this.document.getElementById('eng-css').disabled = false;
        this.document.getElementById('otherlang-css').disabled = true;
    }

  

<link rel="stylesheet" id="eng-css" type="text/css" href="css/start.min.css" />
<link rel="stylesheet" id="otherlang-css" type="text/css" href="css/app.min.css" />