4

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

4

1 回答 1

2

您需要将定位path方法与search方法结合起来。就像是

$location.path('/search').search({key:'a'});

您能否在开发人员指南中查看有关如何使用 $location 的文档。

于 2013-08-25T13:31:50.860 回答