AngularJS 用 $location 改变 url

Posted

技术标签:

【中文标题】AngularJS 用 $location 改变 url【英文标题】:AngularJS change url with $location 【发布时间】:2014-09-12 10:21:45 【问题描述】:

我正在尝试使用 AngularJS 更改 URL, 但不是重定向,只需更改 URL 活动之后。

我需要的是这个:

www.myurl.com/inbox/1 给这个www.myurl.com/inbox/25

也就是说,只需更改最后一个 Id。

我正在尝试这样做:

$location.path('/inbox/'+id);

但我得到的是:

www.myurl.com/inbox/1#/inbox/25

【问题讨论】:

看这里:***.com/questions/16002984/… 我不想重定向 这是我可以用我们的应用程序做的最好的事情:***.com/questions/22940106/… docs.angularjs.org/guide/$location 【参考方案1】:

Angular 强制执行一页 Web 应用程序的想法。浏览器不会对 '#' 值之后的任何内容进行任何更改。所以最好的做法是在 '#' 值之后的 url 中添加变量属性,这将保持基本 url 和属性在浏览器的地址栏上看起来干净,并解决您的问题。我的建议是保留用户名,页码。 ,或“#”值之后的任何特定属性 id。 在你的情况下,你应该使用上面所说的东西

www.myUrl.com/#/inbox/25

www.myUrl.com/inbox/#/25

【讨论】:

【参考方案2】:

通常有角度的 URL 看起来像

www.myurl.com/#/inbox/1

在这种情况下

$location.url('/inbox/25');

应该适合你

【讨论】:

【参考方案3】:

为此,您应该使用 .url() 而不是 .path()

$location.url(`/inbox/$id`)

【讨论】:

以上是关于AngularJS 用 $location 改变 url的主要内容,如果未能解决你的问题,请参考以下文章

『AngularJS』$location 服务

[AngularJS] $location 服务简介

angularjs-$location

在 AngularJS 中使用 .controller 方法时无法访问 $location

angularjs 路由问题处理收集

单击时如何使用 Angular js 的 $location.hash 更改 html 元素的颜色?