angularjs url和querystring弄乱了后退按钮?

angularjs url和querystring弄乱了后退按钮?,angularjs,angularjs-routing,Angularjs,Angularjs Routing,我的angular应用程序显示了一个作业列表,左侧边栏上有优化过滤器,底部有分页导航。其中一个要求是,用户应该能够复制url以共享,因此我不能使用某些控制器方法,通过在每个侧栏过滤器或页码上单击ng来更改作业列表。我必须基本上创建一个url结构,如 localhost/home#/jobs/page/1/pageSize/5?关键字=测试和位置=44746 但是,当我单击列表中设置为转到的作业时,此操作仍然有效 localhost/home#/detail/10,这样就可以了。问题是,当我单击后

我的angular应用程序显示了一个作业列表,左侧边栏上有优化过滤器,底部有分页导航。其中一个要求是,用户应该能够复制url以共享,因此我不能使用某些控制器方法,通过在每个侧栏过滤器或页码上单击ng来更改作业列表。我必须基本上创建一个url结构,如

localhost/home#/jobs/page/1/pageSize/5?关键字=测试和位置=44746

但是,当我单击列表中设置为转到的作业时,此操作仍然有效

localhost/home#/detail/10,这样就可以了。问题是,当我单击后退按钮时,它会将我带到

localhost/home#/detail/10?关键字=test&location=44746

而不是

localhost/home#/jobs/page/1/pageSize/5?关键字=测试和位置=44746

如果我再按一下后退按钮,它会返回到

localhost/home#/jobs/page/1/pageSize/5?关键字=测试和位置=44746

那么,在angular中使用querystring参数是否有什么原因导致了这种情况?在实现querystring url之前,我没有遇到这个问题,但我不知道它为什么会这样做,也不知道要做什么更改

以下是单击筛选器以重新运行搜索时调用的控制器代码

$scope.getJobs = function () {
    var url = '/jobs/page/' + $scope.page +
            '/pageSize/' + $scope.pageSize +
            '/?keyword=' + encodeURI($scope.search.keyword) +
            '&location=' + encodeURI($scope.search.location) +
            '&locationString=' + encodeURI($scope.search.locationString) +
            '&salary=' + encodeURI($scope.search.salary) +
            '&positionTitle=' + encodeURI($scope.search.title) +
            '&jobType=' + encodeURI($scope.search.jobType) +
            '&includeRemote=' + $scope.search.includeRemote;
    $location.url(url);
};
然后是他们单击职务以进入详细信息页面时的控制器方法

$scope.viewJob = function (id) {
    $location.path('detail/' + id);
};

您必须显示一段代码才能更好地识别问题。您可能会分两步更改路径,然后更改搜索,而不是一次更改所有内容。我想我在粘贴代码后发现了问题。更改$location.path('detail/'+id);到$location.url('/detail/'+id);似乎已经解决了这个问题。谢谢