angularjs url with querystring搞砸了后退按钮?

时间:2015-06-09 20:26:07

标签: angularjs angularjs-routing

我的角度应用程序会在左侧边栏上显示带有细化过滤器的作业列表,并在底部显示分页导航。其中一个要求是用户应该能够复制要共享的URL,这样我就无法使用某些控制器方法在每个侧边栏过滤器或页码上单击ng来更改作业列表。我必须基本上创建一个像

这样的url结构

本地主机/家庭#/作业/页面/ 1 /的pageSize / 5关键字=试验&安培;位置= 44746 ...

但是,当我单击列表中的作业时,它将设置为

localhost / home#/ detail / 10,工作正常。问题是当我点击它后面的按钮时

localhost / home#/ detail / 10?keyword = test& location = 44746 ...

而不是

本地主机/家庭#/作业/页面/ 1 /的pageSize / 5关键字=试验&安培;位置= 44746 ...

如果我再次点击后退按钮,则会返回

本地主机/家庭#/作业/页面/ 1 /的pageSize / 5关键字=试验&安培;位置= 44746 ...

那么,在角度中使用查询字符串参数会导致这种情况吗?在我实现查询字符串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);
};

0 个答案:

没有答案