我的页面中有一些搜索功能,它使用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?key = a,$location.search()是空的.
另一方面,$location.path()具有我需要的东西:
/search?key=a
我可以拆分它,并获取搜索字符串,并将其传递给callMyApi.但感觉就像我错过了Angular的做法.
已经阅读了关于$location的文档和一些关于路由的文章,但仍然不知道我要做什么.
最佳答案 您需要将位置路径方法与搜索方法结合使用.就像是
$location.path('/search').search({key:'a'});
您能否查看有关如何在developer guide中使用$location的文档.