首页 > 解决方案 > 自定义 Angularjs 的 $location.search 的 url 格式

问题描述

是否可以更改$location.search(params)创建的 url,而根本不更改功能?例如,可以/page?movie=836更改为类似/page/movie/836?

标签: angularjsangular-ui-router

解决方案


$location.search(),只需获取 URL 的查询部分并为方便起见对其进行解析即可。或者作为 setter,它会更新浏览器 URL 的查询部分。

您可以search()使用以下方法将文字转换为“REST”形式并重定向$location.url()

如果$location.path() == /page?movie=836


var url = $location.path()
for (var key in $location.search()) {
  url += '/' + key + '/'+ $location.search()[key]
}   

$location.url( url ) // redirect to /path/movie/836

推荐阅读