Angular 6 set Background Color in Html to CSS Variable

后端 未结 3 483
离开以前
离开以前 2021-01-18 08:37

I am using Angular 6 and I have a simple div and want to set the background color of this div from inside the template. This works fine when passin

3条回答
  •  失恋的感觉
    2021-01-18 09:35

    In order to bind a style property to a CSS variable in the HTML template, the CSS variable expression var(...) must be sanitized. You can define a custom pipe:

    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);
      }
    }
    

    and use it in the HTML template:

    bkColor = "var(--some-css-var)";
    

    See this stackblitz for a demo.

提交回复
热议问题