如何通过angular2

时间:2016-02-26 13:30:10

标签: typescript angular

我在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中不起作用。

任何想法?

1 个答案:

答案 0 :(得分:2)

我想你只需要用

盲目删除它
this.renderer.setElementClass(this.elementRef.nativeElement, 'md-' + this.color_, false);