我的页面中有一些搜索功能,它使用 GET 请求和 JSON 后端。
我希望如果我运行搜索,我会在浏览器中获得一个 URL,其中包含用户可以收藏的所有参数。
假设我的搜索是:
search?key=a
我将此代码放在搜索的成功回调中,以更新 URL:
$location.path("/search?key=a");
但后来我的网址更新为:
search#/search%3Fkey=a
如果用户为此添加书签,它当然不会运行搜索,它只会显示带有空白输入字段的搜索页面。
当用户拥有正确的链接时,我已经进行了设置以显示搜索结果 - 我将其添加到控制器中:
if (location.search) {
$scope.callMyApi(location.search);
}
但是,当我使用从 AngularJS 获得的链接时,例如search#/search%3Fkey=a
,$location.search()
是空的。
$location.path()
,另一方面,有我需要的东西:
/search?key=a
我可以拆分它,获取搜索字符串,然后将其传递给callMyApi
. 但感觉就像我错过了 Angular 的方式来做到这一点。
已经阅读了关于$location的文档和一些关于路由的文章,但仍然不知道我必须做什么。