Angular - Renderer2: Как установить атрибут без значения?

В Set Attribute Without value есть пост, который предлагает хорошее решение, используя $('body').attr('data-body','');

Однако в моем текущем ионном проекте я использую API Renderer2 от Angular для управления DOM, и у меня есть требование динамически создавать кнопки, а также устанавливать ion-button как один из атрибутов.

Я могу установить атрибуты, имеющие значение с помощью приведенного ниже кода, но не получаю никакой удачи в выяснении, как добавить атрибут без значения.

// Make Copy Button functional
   this.renderer.setAttribute(code, 'id', 'copy-target');
   this.renderer.addClass(button, 'copy-button');
   this.renderer.setAttribute(button, 'data-clipboard-action', 'copy');
   this.renderer.setAttribute(button, 'data-clipboard-target', '#copy-target');

   this.renderer.setAttribute(button, 'ion-button', null); // this doesn't work.

Любое руководство приветствуется.

1 ответ

Вы должны просто передать пустую строку. Я только что попробовал:

this.r.setAttribute(this.div.nativeElement, "ion-button", "");

На

@ViewChild("div") div: ElementRef;

И получил

<div _ngcontent-c0="" ion-button="">Divara</div>

Который так же, как

<div _ngcontent-c0="" ion-button>Divara</div>

Chrome даже отображает это в инструментах разработчика:

Другие вопросы по тегам