问题:如何url
从历史记录中删除以前的路线,以便浏览器“返回”按钮跳过它?
在我的应用程序中,如果数据无效或其他问题 -Angular
执行重定向到错误页面。但是如果在浏览器中按下“返回”按钮 - 用户会再次被重定向到错误页面并从那里重定向到错误页面。所以这是一种无休止的循环。
这个想法是url
从历史记录中删除以前的(带有无效数据的),因此以前的重定向会导致之前的页面url
带有无效数据。
我们browser.location
在 vanilla 中有一些api JS
,但是如何做到这Angular
一点呢?
更新:有很多方法可以获取上一个 url,例如:如何在 Angular 中确定上一个页面的 URL?. 但是怎么设置呢?
解决方案:我尝试使用Angular
Location.replaceState()
来覆盖历史记录。出于某种原因,它只是删除了一个历史条目而没有替换它:https : //angular.io/api/common/Location#replaceState 类似的行为发生在vanilla JS
History.replaceState()
:https : //developer.mozilla.org/en-US/docs/Web /API/历史/replaceState
我最终改变设计,使用skipLocationChange: true
在NavigationExtras
: https://angular.io/api/router/NavigationExtras 所以巴林特Réthy的答案最适合。
繁星点点滴滴
慕桂英546537
波斯汪
相关分类