带有搜索参数的可加标签的网址?

时间:2013-08-25 12:22:32

标签: angularjs

我的页面中有一些搜索功能,它使用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的文档和一些有关路由的文章,但仍然不知道我必须做什么。

1 个答案:

答案 0 :(得分:2)

您需要将位置path方法与search方法结合使用。像

这样的东西
$location.path('/search').search({key:'a'});

您是否可以查看有关如何在developer guide中使用$ location的文档。