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?key = a,$location.search()是空的.

另一方面,$location.path()具有我需要的东西:

/search?key=a

我可以拆分它,并获取搜索字符串,并将其传递给callMyApi.但感觉就像我错过了Angular的做法.

已经阅读了关于$location的文档和一些关于路由的文章,但仍然不知道我要做什么.

最佳答案 您需要将位置路径方法与搜索方法结合使用.就像是

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

您能否查看有关如何在developer guide中使用$location的文档.

点赞