强制角度以更改元素的自定义属性

时间:2018-05-04 13:59:46

标签: angular

我的客户购买了Angular模板,我需要使用此模板构建应用程序。

我有这种情况:

<div 
     class="sidebar" 
     data-color="white" 
     data-background-color="purple" 
     data-image="../assets/img/sidebar-1.jpg" />

这有效,但我想使用Angular变量更改颜色,例如:

<div 
     class="sidebar" 
     data-color="{{MyColorVariable}}" 
     data-background-color="purple" 
     data-image="../assets/img/sidebar-1.jpg" />

但这不起作用。我收到此错误:

模板解析错误:无法绑定到&#39;颜色&#39;因为它不是“div”的已知属性。

是的,像颜色或数据颜色这样的东西实际上不是div的属性。所以,Angular拒绝它。

是否有一些解决方法?

谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个:

constructor(private renderer: Renderer2, private el: ElementRef) {}

ngOnInit() {
  this.renderer.setAttribute(this.el.nativeElement, 'color', 'white');
}

根据这个https://alligator.io/angular/using-renderer2/,它应该有用,但我还没有测试过,我没有使用自定义属性;将删除答案,如果它不起作用