Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 仅隐藏URL的一部分-角度_Angular - Fatal编程技术网

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的安全性