Установка (щелчок) атрибута для элемента привязки - PullRequest
0 голосов
/ 19 февраля 2019

Насколько я понимаю, невозможно динамически добавить атрибут '(click)' к элементу DOM, используя Renderer2 в Angular 2 +.

Если это правда, как вы, милые люди, добавляетеатрибут (click), когда они динамически создают HTML в компоненте или какой обходной путь вы используете?

 const element = this.renderer.createElement('a');

 element.setAttribute('href', 'foobar');     // This works
 element.setAttribute('(click)', 'foobar');  // This does not work

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

Вы можете использовать Renderer2 для добавления атрибутов и прослушивателей событий.Я думаю, что лучше использовать Renderer2, так как он действует как обертка и объясняет, как DOM-манипуляции работают под капотом.

 const element = this.renderer.createElement('a');
 this.renderer.setAttribute(element, 'href', 'foobar');
 this.renderer.listen(element, 'click', this.myMethod);

Вот рабочий пример

0 голосов
/ 19 февраля 2019

(клик) не является атрибутом, и вы не можете использовать его таким образом.
вы можете использовать .addEventListener
, например,
element.addEventListener ('click', function () {сделать что-то});



если вам нужен полный угловой пример:
HTML

<button #mybtn>my Button</button>

TS

 @ViewChild('mybtn') myBtn:ElementRef;
    ngOnInit() {
      this.myBtn.nativeElement.addEventListener('click', function() {
       console.log('from there');
      })
    }
...