Чтобы привязать свойство стиля к переменной CSS в шаблоне HTML, выражение переменной CSS var(...)
должно быть обработано.Вы можете определить пользовательский канал:
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer, SafeStyle } from '@angular/platform-browser';
@Pipe({
name: 'safeStyle'
})
export class SafeStylePipe implements PipeTransform {
constructor(private sanitizer: DomSanitizer) { }
transform(value: string): SafeStyle {
return this.sanitizer.bypassSecurityTrustStyle(value);
}
}
и использовать его в шаблоне HTML:
<div [style.background-color]="'var(--some-css-var)' | safeStyle"></div>
<div [style.background-color]="bkColor | safeStyle"></div>
bkColor = "var(--some-css-var)";
См. этот стек для демонстрации.