>我有一个页面'/categories',显示用户可以单击的多个类别。点击某个类别时,详情页面会显示在网址"/categories/1"中显示的类别 ID 中。
为了实现这一点,我通过以下方式配置了我的应用程序路由模块:
{
path: `${locale}/categories`,
component: CategoriesComponent
},
{
path: `${locale}/categories/:id`,
component: CategoryDetailComponent
}
我使用以下代码导航到详细信息页面:
this.router.navigate([getLocaleFromStorage(), category.id]);
问题是,当我在详细信息页面上返回浏览器时,我被发送到页面"/类别/类别",而不仅仅是"/类别"。
我的第一个想法是覆盖后退导航,但我还没有找到一个好的方法。我找到了一篇文章,解释了如何实现这种结构,但他们在页面上添加一个后退按钮,并在单击按钮时导航回正确的页面。这将起作用,但如果仅使用浏览器的后退按钮,用户仍会被发送到"/categories/categories"页面。
有什么好方法可以实现我想要的吗?
我说的那篇文章
提前感谢!
我发现了问题。
而不是
this.router.navigate([getLocaleFromStorage(), category.id]);
我应该使用
this.router.navigate([getLocaleFromStorage()+'/categories', category.id]);
由于我提供的 URL 不存在,因此应用路由模块将路由重定向到类别页面。