使用Angular路由器编辑浏览器的历史记录API

JDi*_*522 5 angular angular-router

我有一个应用程序,在该应用程序中,我们构造了一系列所有ID为0的临时数据点。通过将它们分别键入01、02、03等,我分别引用了所有这些点。我的路线是/details/:id。如果用户保存这些数据点之一,我们的API会创建一个真实ID。因此,该过程对用户来说是这样的:

转到位于的临时项目 /details/0123

将更改保存到项目0123。

在响应中收到ID为456的新项目。

/details/456除非用户注意URL,否则Angular会重新路由到,并且用户不会注意到过渡。

但是,如果用户在其浏览器上单击“后退”按钮,则他们将转到/details/0123

问:我可以通过Angular路由器(或其他一些可靠的方法)编辑浏览器历史记录以防止导航到/details/0123吗?

Fli*_*lix 7

您可以通过在浏览器历史记录中添加/details/0123路由来替换路由。/details/456replaceUrl: trueNavigationExtras

例子:

this.router.navigate(['/details/456'], { replaceUrl: true });