You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将$location设置为$location.host?需将路径从www.abc.com/portal改为www.abc.com

解决AngularJS中$location设置根域名的问题

嘿,我明白你现在的需求啦——当前页面在www.abc.com/portal,想把地址改回www.abc.com对吧?你之前用$location.path($location.host)的思路有点偏差,我来给你梳理下正确的做法:

首先得搞清楚$location各方法的作用:

  • $location.host()是获取/设置域名部分的,你现在的域名已经是www.abc.com了,根本不需要改它
  • $location.path()是用来修改域名后面的路径部分(也就是/portal这一段),你要回到根域名,其实就是把路径清空就行

所以正确的代码应该是下面两种之一:

方法1:清空路径

$location.path('');

这样设置后,路径部分变成空,页面地址就会自动变成www.abc.com(浏览器通常会在根域名后显示一个/,但效果和你要的完全一致)

方法2:使用url()方法

$location.url('');

url()方法可以设置整个URL的路径+查询参数部分,设为空字符串也能达到同样的效果。和path()的区别是:如果当前URL带有查询参数,url('')会一并清空,而path('')只会清空路径,保留查询参数。

额外小技巧:避免历史记录残留

如果你不希望用户点击浏览器返回按钮时回到/portal页面,可以加上replace()方法:

$location.path('').replace();

这样会替换掉当前的历史记录条目,用户返回就会回到上一个页面而不是/portal。

内容的提问来源于stack exchange,提问作者Ratan Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:52:34