Как изменить значение параметра в файлах sass из машинописного текста?

Я пытаюсь изменить значение переменной в файле "../myStyle.scss" из myComponent.ts . Я читал, что этого добиться невозможно, потому что файл sass компилируется в css препроцессором sass, и переменная исчезает. Нет ли способа обойти это.

Моя переменная называется $theme. И я хочу изменить его значение.

$тема: #5A352A; и я хочу, чтобы это стало $theme: #ffffff; когда пользователь нажимает


person esdras    schedule 30.04.2019    source источник
comment
Обратитесь к этому сообщению: stackoverflow. ком/вопросы/17787845/   -  person Loïc Monard    schedule 30.04.2019
comment
Возможный дубликат Как управлять переменной Sass с помощью javascript   -  person לבני מלכה    schedule 30.04.2019


Ответы (1)


Вы должны работать по-другому.

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

Поэтому, если вы хотите добиться изменения цвета, вам нужно создать другую переменную и другие классы и провести ее в атрибутах вашего класса (это один из способов, проверьте также ngStyle и ngClass в угловой ссылке).

Например, белая тема/темная тема (наиболее распространенный случай). переменные -> $black: #00000; $white: #ffffff

Примеры классов:

.body-dark {
 background-color: $black;
}

.body-white {
 background-color: $white;
}

и проведите классы в элементах html.

setDark(){
document.getElementById("bodyId").setAttribute("class","body-dark ")
}

то же самое для белого.

person Riccardo Albero    schedule 30.04.2019
comment
Спасибо. Я уже знаю этот способ, но мне кажется, что все, что вы хотите изменить на своем экране, должно иметь этот атрибут. И становится тяжелее, когда в вашей теме много цветов. - person esdras; 30.04.2019
comment
возможно, вы можете работать с ngStyle и ngClass , может помочь найти решение, соответствующее вашим потребностям codecraft.tv/courses/angular/built-in-directives/ - person Riccardo Albero; 30.04.2019