在iframe上设置onerror的角度方式

时间:2016-11-29 10:08:13

标签: javascript angularjs iframe

是否有角度方式在iframe上设置onerror属性,所以我可以使用角度表达式。我试过用这个:

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

但得到了错误:

  

不允许使用HTML DOM事件属性的插值

1 个答案:

答案 0 :(得分:0)

您无法使用默认事件。但是您可以创建一个指令并分配给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');
    });
  }

}