In my Angular 4 application I have some components with a form, like this:
export class MyComponent implements OnInit, FormComponent {
form: FormGroup;
You can pass a value to the afterClosed
Observable of the dialog:
// modal.component.html
// unsaved-changes.service.ts
@Injectable({ providedIn: 'root' })
export class UnsavedChangesGuardService
implements CanDeactivate {
constructor(private _dialog: MatDialog) {}
canDeactivate(component: FormComponent) {
if (component.form.dirty) {
const dialogRef = this._dialog.open(UnsavedChangesDialogComponent);
return dialogRef.afterClosed();
}
return true;
}
}