Javascript 在iframe上设置onerror的角度方式
有没有角度的方法可以在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="{{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响应头来检查状态。