When a components in bootstrap's modal dialog, it keeps rerendering couple of times per second. (I see it in browsers developer tools).
The component looks like this:
@Component({
selector: 'app-takeover',
encapsulation: ViewEncapsulation.None,
changeDetection: ChangeDetectionStrategy.OnPush,
template: `
<iframe #iframe
[src]="sanitizer.bypassSecurityTrustResourceUrl(takeover.IframeUrl)"
sandbox="allow-same-origin"
(load)="iframe_load($event)">
</iframe>
`,
})
export class TakeoverComponent {
constructor(
public sanitizer: DomSanitizer
) { }
takeover: Takeover;
@ViewChild('iframe') iframeRef: ElementRef<HTMLIFrameElement>;
iframe_load(event) { }
}
and I show it like this:
let modalRef = this.modalService.open(TakeoverComponent);
let component = modalRef.componentInstance as TakeoverComponent;
component.takeover = takeover;
When I remove (load)="iframe_load($event)" from the template, it renders just once as expected.
Why it keeps rerendering the DOM and how do I prevent it from doing so?
"@angular/core": "~7.2.0", "@ng-bootstrap/ng-bootstrap": "^4.2.1", "zone.js": "~0.8.26"