Angular 仅隐藏URL的一部分-角度
我知道我能做到Angular 仅隐藏URL的一部分-角度,angular,Angular,我知道我能做到 this.router.navigate(["/user-reviews"], username, userId, {skipLocationChange: true}) 如果我来自美国,url也不会改变 http://localhost:4200/main 使用skipLocationChange,但我想说的是http://localhost:4200/user-评论/鲍勃 我该如何做才能使它只隐藏userId参数,而不隐藏用户名,并且仍然保留新的路径用户评论而不是main?
this.router.navigate(["/user-reviews"], username, userId, {skipLocationChange: true})
如果我来自美国,url也不会改变
http://localhost:4200/main
使用skipLocationChange,但我想说的是http://localhost:4200/user-评论/鲍勃
我该如何做才能使它只隐藏userId参数,而不隐藏用户名,并且仍然保留新的路径用户评论而不是main?这可能吗?谢谢你的帮助 基于
你可以很容易地做类似的事情
ngOnInit()
{
this.location.replaceState("/user-reviews/something");
}
在组件内部导航后使用location应该可以做到这一点。您可能会做一些事情来实现这一点,比如将url更改为reviews/bob,然后再次使用id并跳过locaton更改,但是。。。这可能不是你想走的路。在页面刷新的情况下呢?我不知道发生了什么或者为什么。skipLocationChange是一个有用的工具,适用于您希望利用路由器,但希望与启动时处于同一位置的情况,而不是隐藏url的某些部分。。也许你可以多问一个问题,为什么你想完成这项任务,你可以得到一个不同的常规问题。如果我刷新页面,那么它会将URL重置为http://localhost:4200 之后没有任何内容,因此它不会停留在同一路线上。也许你应该将skiplocationchange设置为false如果我将其设置为false,则会显示用户ID,我不知道want@user6680必须有一些东西,但通常,我没有测试它,但replaceState应该替换整个URL,也许你有一个问题,ngOnInit没有正确触发。请执行stackblitz来重现错误。问题是我在ngOnInit上使用GET请求的id,但当您替换State时,它会在刷新后删除该id。例如localhost:4200/main/username/userId到localhost:4200/main/username。我刷新了页面,但是现在我没有要获取的用户ID。我觉得我在要求一件不可能的事情,哈哈,但我考虑过本地存储。我最关心的是公开用户ID的安全性