?-6ren"> ?-我正在使用 Angular 6 和 ngx-translate。在不弄乱主题的情况下切换到 rtl 的唯一方法是 在 index.html 中。 在component.ts : switchLangu-6ren">
gpt4 book ai didi

angular - 如何从组件切换到 ?

转载 作者:行者123 更新时间:2023-12-02 14:57:44 24 4
gpt4 key购买 nike

我正在使用 Angular 6 和 ngx-translate。在不弄乱主题的情况下切换到 rtl 的唯一方法是 <html dir="rtl">在 index.html 中。

component.ts :

switchLanguage(language: string) {
this.translate.use(language);
localStorage.setItem('lang', JSON.stringify(language));
}

如何添加 dir="rtl"<html>如果language === "ar" ,否则删除它?

最佳答案

我忘了提到从 div 更改为 rtl行不通,我在问问题之前测试过,正确切换主题的唯一方法是将其添加到 <html>你可以通过在 CoreUI Free Angular 2+ Admin Template 上尝试来测试它这就是我正在使用的。

我设法解决了它

  switchLanguage(language: string) {
this.translate.use(language);
if (language !== 'ar' && document.getElementsByTagName('html')[0].hasAttribute('dir')) {
document.getElementsByTagName('html')[0].removeAttribute('dir');
} else if (language === 'ar' && !document.getElementsByTagName('html')[0].hasAttribute('dir')) {
document.getElementsByTagName('html')[0].setAttribute('dir', 'rtl');
}
localStorage.setItem('lang', language);

}

如果有人有更好的解决方案,请告诉我,我当然会投票并接受你的方案。

关于angular - 如何从组件切换到 <html ="rtl">?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52154725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com