...
Code Block |
---|
@ViewChild('preview', { static: false }) previewElement: ElementRef; .... ngAfterViewInit() { this.previewElement.nativeElement.onload = () => { this.previewElement.nativeElement.contentWindow.initializePreview(this.playerConfig); this.previewElement.nativeElement.contentWindow.addEventListener('message', resp => { .... }; }; } .... ngOnInit(): void { // get queryParams.identifier // set the content metadata } |
Pros:
Easy to maintain - for two different player easy to differentiate the config between the v1 and v2 player
Easy to redirect and get the action on different types of events
Cons:
Need to maintain a separate component for the v1 player
...
Difficult to maintain - if we need to switch the different versions of the player for the same mimeType
Conclusion
Combine the two solutions to create a separate component (v1-player) in the shared module.