调用$ location.search()后,在ui-router中更新$ stateParams

时间:2014-11-16 04:03:16

标签: angularjs angular-ui-router ionic-framework

我有一个角度应用程序正在使用离子框架,它在后端使用ui-router。

在我的一个控制器中,我打电话:

$location.search('filter','sometext');

我的路由配置中禁用了reloadOnSearch。我注意到更新位置不会更新$stateParams。有没有办法强制$stateParams更新位置更新?我查看了ui-router文档,但没有看到有关此场景的任何内容,但也许我错过了它。

1 个答案:

答案 0 :(得分:5)

我有类似的情况。如果您已禁用reloadOnSearch,则无法跟踪路线更新,但我找到了此案例的解决方案。

观看$stateParams

$scope.$watchCollection('$stateParams', function (newParams) {
    var search = $location.search();

    if (angular.isObject(newParams)) {
      angular.extend(search, newParams);
    }

    $location.search(search).replace();
});

更改$stateParams,而不是路线:

$scope.$stateParams.offset += $scope.$stateParams.limit;

完全working example