Javascript 在iframe上设置onerror的角度方式

Javascript 在iframe上设置onerror的角度方式,javascript,angularjs,iframe,Javascript,Angularjs,Iframe,有没有角度的方法可以在iframe上设置onerror属性,这样我就可以使用角度表达式了。我试着用这个: <iframe onerror="{{vm.error()}}" ng-src="{{vm.url}}"/> 但有一个错误: 不允许对HTML DOM事件属性进行插值 对于默认事件,您不能。但是您可以创建一个指令并分配给iframe。然后在指令的逻辑中,注册到onerror事件并写入逻辑 import { Directive, ElementRef, HostListene

有没有角度的方法可以在iframe上设置onerror属性,这样我就可以使用角度表达式了。我试着用这个:

<iframe onerror="{{vm.error()}}" ng-src="{{vm.url}}"/>

但有一个错误:

不允许对HTML DOM事件属性进行插值


对于默认事件,您不能。但是您可以创建一个指令并分配给
iframe
。然后在指令的逻辑中,注册到
onerror
事件并写入逻辑

import { Directive, ElementRef, HostListener, Renderer2, AfterViewInit } 
from '@angular/core';

@Directive({
  selector: '[appFrame]'
})
export class FrameDirective implements AfterViewInit {

 constructor(private iframeEl: ElementRef, private renderer: Renderer2) {
 }

  ngAfterViewInit() {
    this.renderer.listen(this.iframeEl.nativeElement, 'error', () => {
        console.log('error caught in directive');
    });
  }

}

不确定这是如何标记为“答案”的。你能再详细一点吗?示例代码会有所帮助。
this.renderer.listen(this.iframeEl.nativeElement,'error',()=>{console.log('error catch in directive');})此处没有回调,因为
错误
。它的实现与我们在JS中使用
onload()
函数的实现相同,但在Angular中使用了指令-在
this.iframeEl.nativeElement
中没有HTTP响应头来检查状态。