我有这个功能来加载样式表,基于用户的选择' 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文件,但它没有正常工作,任何想法?
答案 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" />