Псевдо-решение было бы использовать CanDeactivate
средство защиты маршрута, где вы можете иметь ссылку на компонент формы.
Проверьте, верна ли форма для возврата true, чтобы перенаправить, иначе предупредить уведомление и вернуть false
Пример кода для
import { CanDeactivate } from '@angular/router'
import { ContactComponent } from './contact.component'
export class CanDeactivateContact implements CanDeactivate<ContactComponent> {
canDeactivate(component: ContactComponent): boolean {
if(component.contactForm.dirty) {
return confirm('are you sure you want to leave this page');
}
return true;
}
}
Пример стекаблика при https://stackblitz.com/edit/angular-candeactivate-route-guard