欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Angular更改url地址参数(使用js的location)

程序员文章站 2022-06-10 21:01:37
...

今天想实现一个功能就是根据前一个画面传过来的参数判断是否当前画面需要重新检索。这是上一个画面传过来的url参数:

http://localhost:3000/#/manage/student?Flag=return

现在通过url参数判断flag为return,所以执行检索。但是有个问题是,当页面刷新时,因为url路径没有改变,所以flag仍为return。这样的话,画面还会执行检索操作,但是这种情况不想再让画面执行检索怎么办呢?于是我想到了用location的search方法替换url的参数值。

location.search 属性是一个可读可写的字符串,可设置或返回当前 URL 的查询部分(问号 ? 之后,井号 # 之前的部分)。

读取:location.search

设置:location.search = 'flag=new'

但是要注意 location.search 是取问号 ? 之后,井号 # 之前的部分。如果你的url是这样的:

http://localhost:8080/index.html#/version?flag=return

location.search取到的值是空的。即使你 location.search = 'flag=new'用这种方法设置,得到的url也是:

http://localhost:8080/index.html?flag=new#/version?flag=return

如果你是上面这种情况,就得用第二种方法改变参数值了。

const newHash = location.hash.replace('flag=return', 'flag=new');
location.replace(newHash);