Wpis z mikrobloga

#programowanie #angular
Mam taki problem, chcę otwierać na przycisk nowe okienko (nie nowy tab), w którym będę otwierał swój komponent (jakieś tam #!$%@? materialowe). Przede wszystkim chodzi mi o to, żebym mógł je przenieść na inny ekran. Stworzyłem swój komponent, który odpowiada za generowanie takiego okienka, natomiast jest to czysty html. Ktoś mi doradzi czy dobrze temat kminię, czy lepiej coś innego wymyśleć?

export class WindowComponent implements OnDestroy {
@ViewChild(CdkPortal, {static: false}) portal: CdkPortal;
@Output() windowClosed: EventEmitter = new EventEmitter();
private externalWindow = null;
constructor(
private componentFactoryResolver: ComponentFactoryResolver,
private applicationRef: ApplicationRef,
private injector: Injector) {
}
ngOnDestroy() {
this.windowClosed.emit();
this.externalWindow.close();
}
openWindow() {
this.externalWindow = window.open('', '', 'width=600,height=400,left=200,top=200');
const host = new DomPortalHost(
this.externalWindow.document.body,
this.componentFactoryResolver,
this.applicationRef,
this.injector
);
host.attach(this.portal);
}
}

I tutaj przykład podobny:
https://stackblitz.com/edit/angular-open-window-bvenwh?file=src%2Fapp%2Fwindow.component.ts
  • 1