I have tried to use this method cdkPortalOutlet with ComponentPortal, and I used Injector.create to pass data from parent to portal component it works fine.
I want to pass data back from portal component to parent component
html
<div><ng-template [cdkPortalOutlet]="defaultComponent"></ng-template></div>
ts
defaultComponent!: Portal<any>;ngViewInit(): void { this._loadDefaultCompnent(data);}private _loadDefaultCompnent(data: any) { const _data = this._getPortalComponentData(); this.defaultComponent = this._getProtalComponent(_data);}private _getPortalComponentDatat(data: any) { return new ComponentPortal(portalComponent, null, this._portalInjector(data));}private _getPortaComponentData() { return { data: this.list };}private _portalInjector(data: any) { return Injector.create({ providers: [{ provide: PORTAL_DATA, useValue: data }] }); }
How to pass data back from portal component to parent component?