我有一个angular 11应用程序,我从页面加载的API中获取品牌颜色。有了这个品牌的颜色,我想把它添加到我的应用程序的不同组件中,用于页眉、页脚和不同的按钮样式。我创建了一个全局的brand.scss,我想在这里改变这个文件的页眉和页脚的颜色。我可以通过app组件中的服务获取颜色,但如何将其导出到scss文件。有没有人能帮我一下?
谢谢
发布于 2021-03-17 07:54:02
将颜色变量放入JS,并使用ngStyle进行绑定
app.component.ts
@Component({
selector: 'app-root',
template: `
<h1>angular-dynamic-theme</h1>
<div class="block primary-background">Primary</div> <br>
<div class="block secondary-background">Secondary</div> <br>
Set Primary Color:
<input type="text" [(ngModel)]="primaryColor"> <br>
Set Secondary Color:
<input type="text" [(ngModel)]="secondaryColor"> <br>
<button (click)="changeTheme(primaryColor, secondaryColor)">Save</button>
`,
styleUrls: ['./app.component.scss']
})
export class AppComponent {
primaryColor: string;
secondaryColor: string;
constructor() {
this.changeTheme('red', 'yellow'); // Set default theme
}
changeTheme(primary: string, secondary: string) {
document.documentElement.style.setProperty('--primary-color', primary);
document.documentElement.style.setProperty('--secondary-color', secondary);
}
}app.component.scss
$primary: var(--primary-color);
$secondary: var(--secondary-color);
h1 {
color: $primary;
}
h1:hover {
color: $secondary;
}
.block {
width: 100px;
height: 100px;
}
.primary-background {
background-color: $primary;
}
.secondary-background {
background-color: $secondary;
}但是,如果您使用的是角度材质,则可以更轻松地完成此操作。希望这篇文章能帮助你找到正确的方向
https://stackoverflow.com/questions/66665050
复制相似问题