如何简洁地删除和添加Angular renderer2中的类

Art*_*ker 2 angular

是否可以简洁地在元素中添加和删除一个类,而不是编写一大堆if else语句

你能做这个吗?虽然不适合我

for brevity
 constructor(private renderer: Renderer2,private elRef: ElementRef) {}
    const action = isDisabled ? 'addClass' : 'removedClass';
    this.renderer[action](div, 'disabled');
Run Code Online (Sandbox Code Playgroud)

代替

if (isDisabled) {
        this.renderer.addClass(div, 'disabled');
    } else {
      this.renderer.removeClass(div, 'disabled');
    }
Run Code Online (Sandbox Code Playgroud)

Est*_*ask 6

有可能做到

const action = isDisabled ? 'addClass' : 'removeClass';
this.renderer[action](div, 'disabled');
Run Code Online (Sandbox Code Playgroud)

甚至

this.renderer[isDisabled ? 'addClass' : 'removeClass'](div, 'disabled');
Run Code Online (Sandbox Code Playgroud)

它是removeClass,而不是删除d.而这正是为什么不应该这样做的原因.

括号表示法禁用类型检查,因此可以访问不存在的属性而不会触发类型错误.

另一个原因是代码可能更难阅读.