37
loading...
This website collects cookies to deliver better user experience
canDeactivate(
component: Component,
currentRoute: ActivatedRouteSnapshot,
currentState: RouterStateSnapshot,
nextState?: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
return true;
}
ng g guard custom-guard
export class ConfirmguardGuard implements CanDeactivate<Comp1Component> {
canDeactivate(
component: Comp1Component,
currentRoute: ActivatedRouteSnapshot,
currentState: RouterStateSnapshot,
nextState?: RouterStateSnapshot
):
| Observable<boolean | UrlTree>
| Promise<boolean | UrlTree>
| boolean
| UrlTree {
console.log('deactivate');
let subject = new Subject<boolean>();
component.openDialog();
subject = component.subject;
return subject.asObservable();
}
}
const routes: Routes = [
{
path: 'comp1',
canDeactivate: [ConfirmguardGuard],
component: Comp1Component,
},
{ path: 'comp2', component: Comp2Component },
{ path: '', redirectTo: 'comp1', pathMatch: 'full' },
];