2017-02-03 79 views
7

我們有一個客戶端,它是我們的應用程序中的iFraming到他們的網站。他們不希望我們的應用程序中的路由器導航影響他們自己網站的後退按鈕導航。Angular 2:防止路由器添加到歷史中

我們已經嘗試了幾種方法,包括使用發佈消息嘗試並在觸發history.back()時嘗試使iFrame與父窗口通信。

我的問題是如果在使用Angular 2的路由器時有任何簡單的方法不會影響瀏覽器的歷史記錄。據我所知,我在Angular 2的高級路由器文檔中找不到任何東西:https://angular.io/docs/ts/latest/guide/router.html

回答

10

事實證明,Angular 2的路由有一種內置方式可以跳過向歷史添加狀態。我們實際上發現它通過編輯器的intellisense內部的隨機屬性進行檢查。

我們的路由代碼剛剛從去:

this.router.navigate([`/myPage/${this.Id}`], { relativeTo: this.route });

到:

this.router.navigate([`/myPage/${this.Id}`], { relativeTo: this.route, skipLocationChange: true });

+1

好找! Angular的路由器教程中的一個小記錄會很棒 – cboston

+1

我覺得他們應該允許你在路線上指定一個標誌,比如'shadow:true',來烘烤這個行爲。 – Ciel

+0

這個人回答他自己的問題很多...但除此之外,他似乎是一個好人。不是我會親自諮詢的人,但體面的。 – mdlars