我在angular2中找到了nativeElement.classList.add()的替代方法。 (此处描述的原始问题:looking for nativeElement.classList.add() alternative)
但是现在我想在渲染新属性之前获取class属性。 因为如果颜色值更改,则会添加新类,但不会删除旧类。
所以我试图解决
<button md-button color="accent" class="myClass"></button>
到
<button md-button color="accent" class="myClass md-accent"></button>
当color属性更改为警告时,它应呈现
<button md-button color="warn" class="myClass md-warn"></button>
现在它呈现
<button md-button color="warn" class="myClass md-accent md-warn"></button>
所以我尝试做的是:在更新this.color_
之前,删除md-this.color_
类。
@Input()
set color(value: string) {
// READ CLASS ATTRIBUTE HERE, SO I CAN REMOVE THE OLD md-this.color_
this.color_ = value;
this.renderer.setElementClass(this.elementRef, 'md-' + this.color_, true);
}
通过nativeElement获取属性不是一个选项,因为这在webworkers中不起作用。
任何想法?
答案 0 :(得分:2)
我想你只需要用
盲目删除它this.renderer.setElementClass(this.elementRef.nativeElement, 'md-' + this.color_, false);