issues
search
web-dave
/
angular_workshop
0
stars
0
forks
source link
Create a Guard
#15
Open
web-dave
opened
4 months ago
web-dave
commented
4 months ago
Create a
leave
guard Function
Implement it as a CanDeactivateFn
leave.guard.ts
```ts import { BookNewComponent } from './../book-new/book-new.component'; import { CanDeactivateFn } from '@angular/router'; export const leaveGuard: CanDeactivateFn
= (target: BookNewComponent) => { if (!target.isSaved()) { return window.confirm('Do you really want to cancel?'); } else { return true; } } ```
Add it to the
new
route
book.routes.ts
```ts { path: 'new', component: BookNewComponent, canDeactivate: [leaveGuard] } ```
You need a helper to check status of this Component
book-new.component.ts
```ts isSaved() { return this.saved || !this.form.dirty; } ```
web-dave
commented
3 weeks ago
NEXT
leave
guard Functionleave.guard.ts
```ts import { BookNewComponent } from './../book-new/book-new.component'; import { CanDeactivateFn } from '@angular/router'; export const leaveGuard: CanDeactivateFnnew
routebook.routes.ts
```ts { path: 'new', component: BookNewComponent, canDeactivate: [leaveGuard] } ```book-new.component.ts
```ts isSaved() { return this.saved || !this.form.dirty; } ```