Version 16.0.1 MatDialog

538 views
Skip to first unread message

Eduardo Cardoso Martin

unread,
May 21, 2023, 2:26:55 PM5/21/23
to angular-material2
Hello, I have an error with MatDialog. As described below, I am encountering a NullInjectorError related to the MatDialog service.

EROR NullInjectorError: R3InjectorError(AppModule)[UploadService -> MatDialog -> MatDialog]:


VM1493:1
ERROR NullInjectorError: R3InjectorError(AppModule)[UploadService -> MatDialog -> MatDialog]: NullInjectorError: No provider for MatDialog! at NullInjector.get (core.mjs:8716:27) at R3Injector.get (core.mjs:9145:33) at R3Injector.get (core.mjs:9145:33) at injectInjectorOnly (core.mjs:624:33) at Module.ɵɵinject (core.mjs:628:60) at Object.UploadService_Factory [as factory] (upload.service.ts:7:27) at R3Injector.hydrate (core.mjs:9246:35) at R3Injector.get (core.mjs:9134:33) at ChainedInjector.get (core.mjs:12931:36) at lookupTokenUsingModuleInjector (core.mjs:4390:39)


import { Injectable } from '@angular/core';
import { Observable, from } from 'rxjs';
import { UploadComponent } from '../components/upload/upload.component';
import { MatDialog } from '@angular/material/dialog';

@Injectable({ providedIn: 'root'})
export class UploadService {
  private modalData$!: any;
  constructor(private dialog: MatDialog) { }


  uploadFile(props: any): Observable<any> {
    const dialogRef = this.dialog.open(UploadComponent, {
      width: props.width || '50%',
      maxWidth: props.maxWidth || '400px',
      hasBackdrop: true,
      disableClose: true,
      data: props.data,
    })
    const modalData$ = dialogRef.afterClosed();
    return from(modalData$);
  }
} 

@NgModule({
  declarations: [
    AppComponent,
    UploadComponent
  ],
  imports: [
    MaterialModule,
    BrowserModule,
    AppRoutingModule,
    BrowserAnimationsModule
  ],
  providers: [ UploadService ],
  bootstrap: [AppComponent]
})
export class AppModule { }

@Component({
  selector: 'app-upload',
  templateUrl: './upload.component.html',
  styleUrls: ['./upload.component.scss']
})
export class UploadComponent{
  constructor(
    public dialogRef: MatDialogRef<UploadComponent>,
    @Inject(MAT_DIALOG_DATA) public data: any) { }


  closeAceptModal() {
    this.dialogRef.close(true);
  }

  closeCancelModal() {
    this.dialogRef.close(false);
  }

}

 
 
Reply all
Reply to author
Forward
0 new messages