Как условно добавить два css-файла в один компонент на Angular 8

#css #angular #typescript #forms #angular8

Вопрос:

Компонент содержит форму, и я хочу использовать два языка, и каждый из них имеет свой собственный стиль CSS, один для направления: ltr; а другой для направления: rtl;

Как я могу условно использовать 2 файла CSSs в компоненте?

Этот компонент содержит диалоговое окно,

 ngAfterViewInit() {  this.dialog.open(chooseLanguageComponent);   }  

таким образом, пользователь может выбрать, какой язык ему нравится, если пользователь выбирает английскую форму, компонент использует стиль1.css, а если он выбирает арабский английский, компонент использует стиль2.css

Я использую angular 8 / Угловой материал / NG-ZORRO

Комментарии:

1. Учитывая то, как Angular AOT компилирует CSS в компонент, вы не можете динамически использовать разные css-файлы. Однако вы можете добавить класс языка в форму, а затем этот класс может изменить внешний вид вложенных элементов.

Ответ №1:

Почему бы вам просто не использовать для этого классы в теле.

Когда вы меняете язык, чтобы добавить, например, класс «.rtl» или «.ltr» в тело, то стилю, связанному с каждым выравниванием, должно предшествовать имя класса, что-то вроде этого.

 .rtl p {  text-align: right; } .ltr p {  text-align: left; }