1
在Angular 2中,有沒有更好的方式來控制瀏覽器回來。 例如:點擊返回時,顯示確認對話框,如果確認重定向到第X頁,則保持在同一頁面。控制瀏覽器回到Angular 2
使用location.onPopState()我們不能完全控制瀏覽器,因爲它最終會做後面的重定向。
以上行爲可以通過authguard,canActivate的angular2路由實現嗎?
在Angular 2中,有沒有更好的方式來控制瀏覽器回來。 例如:點擊返回時,顯示確認對話框,如果確認重定向到第X頁,則保持在同一頁面。控制瀏覽器回到Angular 2
使用location.onPopState()我們不能完全控制瀏覽器,因爲它最終會做後面的重定向。
以上行爲可以通過authguard,canActivate的angular2路由實現嗎?
你正在尋找的是canDeactivate
後衛。維克多在他的書中這樣描述它:
canDeactivate守衛與其餘的不同。其主要目的不是檢查權限,而是要求確認。爲了說明這一點,讓我們更改應用程序,要求在用戶使用未保存的更改關閉撰寫對話框時確認 。
然後,他繼續分享如何做一個SaveChanges
後衛:
canDeactivate(component: ComposeCmp, route: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Promise<boolean> {
if (component.unsavedChanges) {
return this.dialogs.unsavedChangesConfirmationDialog();
} else {
return Promise.resolve(true);
}
}
我強烈建議購買這本書。 https://leanpub.com/router