Добавить слушатель события в элемент DOM в Angular 4
Я хотел бы добавить слушатель события в событие загрузки iframe внутри углового компонента.
Я знаю, что мог бы использовать ViewChild
декоратор, а затем получить доступ к element.nativeElement.addEventListener
Однако для того, чтобы соответствовать рекомендациям при работе с DOM в Angular, доступ к addEventListener на nativeElement все еще считается независимым от платформы? Или я привязываю свое приложение к чисто браузерному приложению?
Спасибо
2 ответа
Решение
Если вам нужен угловой способ, я предлагаю вам создать директиву, как показано ниже, и прикрепить ее к элементу dom
@Directive({
selector: `[IFrame]`
})
export class IFrameDirective {
constructor(private el: ElementRef, private renderer: Renderer) { }
@HostListener('load', ['$event'])
iFrameLoad(event: Event) {
alert('IFrame loaded');
}
}
@HostListener
Директива in позволяет вам связать событие с элементом host, с которым связана ваша директива.
HTML
<iframe IFrame> ..rest code
2018-06-07 06:33