0
我在Angular2
中遇到CanDeActivate()
的問題。該情景是當用戶從編輯屏幕離開頁面時,彈出窗口出現「是」,「否」和「取消」按鈕。 當用戶點擊取消按鈕時,它會關閉彈出窗口,當用戶點擊沒有按鈕時,它會關閉彈出窗口並重定向到用戶點擊導航的另一個頁面。CanDeActivate()在同一條路線上只運行一次
假設應用程序有3個模塊A,B和C.模塊C有編輯屏幕。當用戶在該頁面上編輯並且不保存用戶對模塊B的點擊時。彈出窗口隨附有是,否和取消按鈕。在取消按鈕它保持在同一頁面,但用戶再次點擊模塊B沒有發生在這裏。如果用戶點擊模塊A彈出來。
我陷入了這個問題。如果有人能幫忙,我會分享我的代碼。這將非常感激。提前致謝。
MyComponent.ts
canDeactivate:() => Observable<boolean> | Promise<boolean> | boolean =() => {
if (this.isEdited) {
this.showConfirmationModal = true;
this.canLeavePage.asObservable().first();
return false;
}
return true;
}
燦Deactivate.guard.ts
export interface CanComponentDeactivate {
canDeactivate:() => Observable<boolean> | Promise<boolean> | boolean;
}
@Injectable()
export class CanDeactivateGuard implements CanDeactivate<CanComponentDeactivate> {
canDeactivate(component: CanComponentDeactivate) {
let can = component.canDeactivate();
if (!can) {
return false;
}
return true;
}
}
您使用的是最新的Angular2版本嗎? –