Renderer.addClass() 上有多个 class

More than one class on Renderer.addClass()

如何在方法 Renderer2.addClass();

上添加多个 class

示例:

this.renderer.addClass(this.el.nativeElement, 'btn btn-primary')

当我尝试这样做时,出现错误:

ERROR DOMException: Failed to execute 'add' on 'DOMTokenList': The token provided ('btn btn-primary') contains HTML space characters, which are not valid in tokens.
    at EmulatedEncapsulationDomRenderer2.addClass

不幸的是this.renderer.addClass()只接受一个没有空格的字符串。

你可以做的是使用原生元素的 classList 添加多个 类:

this.el.nativeElement.classList.add('btn', 'btn-primary');

嗯,也许 Renderer2 addClass() 方法不支持它,但这可以通过使用 JavaScript 来实现:)

  const myClassess = 'col-12 col-sm-6 col-md-4';
  myClassess.split(' ').forEach((className: string) => {
      this.renderer2.addClass(this.el.nativeElement, className);
  });

您可以使用this.renderer.setAttribute()

伪:

this.renderer.setAttribute(element, 'class', 'className1 className2 className3');

示例:

renderer.setAttribute(cropBottomLine, 'class', 'crop-line crop-bottom-line');