我想向Angular 组件内的iframe 加载事件添加一个事件侦听器。
我知道我可以使用ViewChild
装饰器,然后访问element.nativeElement.addEventListener
但是,为了在 Angular 内部处理 DOM 时遵守最佳实践,访问 nativeElement 上的 addEventListener 仍然被认为是平台无关的吗?还是我将我的应用程序绑定到纯浏览器应用程序?
谢谢
我想向Angular 组件内的iframe 加载事件添加一个事件侦听器。
我知道我可以使用ViewChild
装饰器,然后访问element.nativeElement.addEventListener
但是,为了在 Angular 内部处理 DOM 时遵守最佳实践,访问 nativeElement 上的 addEventListener 仍然被认为是平台无关的吗?还是我将我的应用程序绑定到纯浏览器应用程序?
谢谢
如果您想要角度方式,那么我建议您创建如下所示的指令并将其附加到您的 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 指令允许您将事件与您的指令绑定的宿主元素绑定。
html
<iframe IFrame> ..rest code