我的页面中有一些搜索功能,它使用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的文档和一些有关路由的文章,但仍然不知道我必须做什么。
答案 0 :(得分:2)
您需要将位置path
方法与search
方法结合使用。像
$location.path('/search').search({key:'a'});
您是否可以查看有关如何在developer guide中使用$ location的文档。