AbsaOSS / cps-shared-ui

Angular shared components library
https://absaoss.github.io/cps-shared-ui/
Apache License 2.0
2 stars 2 forks source link

Dialog doesn't include elementInjector #365

Closed lukasmatta closed 3 months ago

lukasmatta commented 3 months ago

https://stackblitz.com/edit/stackblitz-starters-pxessn?file=src%2Fmain.ts

@Component({
  selector: 'dialog-comp',
  template: ` {{ injectedValue }} `,
})
export class DialogComponent {
  constructor(@Inject(SampleToken) public injectedValue: string) {}
}

@Component({
  selector: 'app-root',
  standalone: true,
  templateUrl: './app.component.html',
  styleUrl: './app.component.css',
  providers: [
    CpsDialogService,
    {
      provide: SampleToken,
      useValue: 'It works!',
    },
  ],
})
export class AppComponent {
  constructor(
    private cpsDialog: CpsDialogService,
  ) {}

  // Throws error (DialogComponent doesn't have a provider for SampleToken as it doesn't implicitly inherit elementinjector)
  openDialog() {
    this.cpsDialog.open(DialogComponent, {});
  }