Добавить слушатель события в элемент DOM в Angular 4 - PullRequest
0 голосов
/ 07 июня 2018

Я хотел бы добавить прослушиватель событий к событию загрузки iframe внутри углового компонента.

Я знаю, что могу использовать декоратор ViewChild, а затемaccess element.nativeElement.addEventListener

Однако, чтобы соответствовать рекомендациям при работе с DOM в Angular, доступ к addEventListener на nativeElement по-прежнему считается независимым от платформы?Или я привязываю свое приложение к чисто браузерному приложению?

Спасибо

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

если вы хотите использовать угловой путь, я предлагаю вам создать директиву, как показано ниже, и присоединить ее к элементу dom.

@Directive({
  selector: `[IFrame]`
})
export class IFrameDirective {
  constructor(private el: ElementRef, private renderer: Renderer) { }

  @HostListener('load', ['$event'])
  iFrameLoad(event: Event) {
    alert('IFrame loaded');
  }
}

@HostListener в директиве позволяет вам связать событие с элементом хоста, с которым вашДиректива связана.

html

<iframe IFrame> ..rest code
0 голосов
/ 07 июня 2018

ты пробовал это?

<iframe (load)="doSomething()">

Кажется, работает на stackblitz .

...