Angular 角度9动态路线
首先,对不起,我的英语说得不好,但我会尽力解释我自己! 我在Angular 9中创建了一个电子商务,该电子商务的路径如下所示,每一条路径最后都带有Angular 角度9动态路线,angular,typescript,Angular,Typescript,首先,对不起,我的英语说得不好,但我会尽力解释我自己! 我在Angular 9中创建了一个电子商务,该电子商务的路径如下所示,每一条路径最后都带有.html我指向一个我称之为路由器重定向的组件,当我进入该组件时,我调用电子商务api传递相关url,然后它返回,如果该url是一个类别,一个产品,一篇文章。。有了这个答案,我重定向到正确的组件 问题是,在某些情况下,如类别页面,我需要在URL中保留一些查询字符串,如pageIndex和orderby,但angular不显示查询字符串,因为在进行导航时
.html
我指向一个我称之为路由器重定向的组件,当我进入该组件时,我调用电子商务api传递相关url,然后它返回,如果该url是一个类别,一个产品,一篇文章。。有了这个答案,我重定向到正确的组件
问题是,在某些情况下,如类别页面,我需要在URL中保留一些查询字符串,如pageIndex和orderby,但angular不显示查询字符串,因为在进行导航时,我放置了skipLocationChange:true
,因为我无法更改URL,并且需要保留查询字符串
我只在用户想要与其他人共享url时才需要它
我如何使用导航方法的示例:
this.router.navigate(['categoria-listagem'], {
skipLocationChange: true,
queryParams: { page: 1, order: 'novidades' }
});
如果有人知道更好的重定向方法,或者知道如何保留查询字符串,即使使用skipLocationChange,这也会救我
提前感谢您。听起来您应该添加为“合并”或“保留”(取决于您的要求),例如 这会将新的查询参数添加到URL中已有的任何查询参数中
此外,您可能还需要删除
skipLocationChange
,这取决于您需要的功能。Hi@Guilherme-您是否解决了问题?嗨,还没有。。。。我想我必须用一个警卫来代替一个部件重新布线。如果我设法得到它的权利,我会张贴在这里!我认为路由器重定向应该是一个服务而不是一个组件,但很难说没有看到更多的代码。一般来说,这听起来是一个相当复杂的路由方法,但祝你好运!
this.router.navigate(['categoria-listagem'], {
skipLocationChange: true,
queryParams: { page: 1, order: 'novidades' },
queryParamsHandling: "merge"
});