Bagaimana cara mengubah nilai parameter dalam file sass dari TypeScript?

Saya mencoba mengubah nilai variabel dalam file "../myStyle.scss" dari myComponent.ts . Saya membaca bahwa tidak mungkin untuk mencapainya karena file sass dikompilasi menjadi css oleh pra-prosesor sass dan variabelnya menghilang. Apakah tidak ada cara untuk mengatasi hal ini.

Variabel saya disebut $theme. Dan saya ingin mengubah nilainya.

$tema: #5A352A; dan saya ingin menjadi $theme: #ffffff; ketika pengguna mengklik


person esdras    schedule 30.04.2019    source sumber
comment
Lihat posting ini: stackoverflow. com/questions/17787845/   -  person Loïc Monard    schedule 30.04.2019
comment
Kemungkinan duplikat Cara mengontrol Variabel Sass dengan javascript   -  person לבני מלכה    schedule 30.04.2019


Jawaban (1)


Anda harus bekerja dengan cara yang berbeda.

Pada dasarnya ketika Anda mengkompilasi aplikasi sudut, itu akan menghasilkan file css yang menggantikan variabel dengan nilai, di mana pun Anda menggunakannya.

Jadi jika Anda ingin mencapai perubahan warna, Anda harus membuat variabel lain dan kelas lain dan menggeseknya di atribut kelas Anda (ini salah satu caranya, periksa juga ngStyle dan ngClass di referensi sudut).

Misalnya tema putih/tema gelap (kasus paling umum). variabel -> $black: #00000; $white: #ffffff

Contoh kelas:

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

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

dan geser kelas di elemen html.

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

sama untuk warna putih.

person Riccardo Albero    schedule 30.04.2019
comment
Terima kasih. Saya sudah mengetahui cara ini tetapi menurut saya sangat berat segala sesuatu yang ingin Anda ubah di layar Anda harus memiliki atribut ini. Dan menjadi lebih berat bila tema Anda memiliki banyak warna - person esdras; 30.04.2019
comment
mungkin Anda dapat bekerja dengan ngStyle dan ngClass , dapat membantu menemukan solusi yang sesuai dengan kebutuhan Anda codecraft.tv/courses/angular/built-in-directives/ - person Riccardo Albero; 30.04.2019