[ANGULAR] Angular 2/4 : iframe에 컴파일 된 구성 요소를 추가합니다
ANGULARAngular 2/4 : iframe에 컴파일 된 구성 요소를 추가합니다
해결법
-
1.ComponentRef 인스턴스를 작성한 다음 원하는 위치에 해당 compref.location.nativeElement를 삽입 할 수 있습니다.
ComponentRef 인스턴스를 작성한 다음 원하는 위치에 해당 compref.location.nativeElement를 삽입 할 수 있습니다.
나는 그것을 다음과 같이 할 것입니다. Plunker 예제 :
@Component({ selector: 'my-app', template: ` <button (click)="createComponent()">Create component</button> <iframe #iframe (load)="onLoad()"></iframe> `, }) export class App implements AfterViewInit, OnDestroy { @ViewChild('iframe') iframe: ElementRef; doc: any; compRef: ComponentRef<DynamicComponent>; constructor( private vcRef: ViewContainerRef, private resolver: ComponentFactoryResolver) {} createComponent() { const compFactory = this.resolver.resolveComponentFactory(DynamicComponent); this.compRef = this.vcRef.createComponent(compFactory); this.doc.body.appendChild(this.compRef.location.nativeElement); } onLoad() { this.doc = this.iframe.nativeElement.contentDocument || this.iframe.nativeElement.contentWindow; } ngAfterViewInit() { this.onLoad(); // in Firefox state is uninitialized while // in Chrome is complete so i use `load` event for Firefox } ngOnDestroy() { if(this.compRef) { this.compRef.destroy(); } } }
`entryComponents 배열에 동적 구성 요소를 추가하는 것을 잊지 마십시오
from https://stackoverflow.com/questions/42875013/angular-2-4-add-compiled-component-to-an-iframe by cc-by-sa and MIT license
'ANGULAR' 카테고리의 다른 글
[ANGULAR] 브라우저 언어 탐지 [복제] (0) | 2020.11.28 |
---|---|
[ANGULAR] 조건부 표현식에서 날짜 파이프 사용 - Angular 2 (0) | 2020.11.28 |
[ANGULAR] ./node_modules/ng2-charts/fesm5/ng2-charts.js 230 : 54-72 "export 'ɵɵdefineInjectable'은 '@ angular / core'에서 찾을 수 없었습니다. (0) | 2020.11.28 |
[ANGULAR] 왜 NGIF는 NG- 템플릿을 사용하지 않습니다. (0) | 2020.11.28 |
[ANGULAR] 앵귤러의 지정되지 않은 구성 요소 사이의 속성 상태를 설정하거나 전달하는 방법 (0) | 2020.11.28 |