我在 angular2 中找到了 nativeElement.classList.add() 的替代方法。 (此处描述的原始问题:looking for nativeElement.classList.add() alternative)
但现在我想在渲染新属性之前获取类属性。 因为如果颜色值发生变化,则会添加一个新类,但不会删除旧类。
所以我在努力解决
<button md-button color="accent" class="myClass"></button>
到
<button md-button color="accent" class="myClass md-accent"></button>
当颜色属性更改为警告时,它应该呈现
<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 中不起作用。
有什么想法吗?
最佳答案
我想你只需要盲目地删除它
this.renderer.setElementClass(this.elementRef.nativeElement, 'md-' + this.color_, false);
关于typescript - 如何通过 angular2 中的渲染器(或替代)获取类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35653039/