Angularjs 在调用$location.search()后更新ui路由器中的$stateParams

Angularjs 在调用$location.search()后更新ui路由器中的$stateParams,angularjs,angular-ui-router,ionic-framework,Angularjs,Angular Ui Router,Ionic Framework,我有一个angular应用程序,它使用ionic框架,在后端使用ui路由器 在我的一个控制器中,我调用: $location.search('filter','sometext'); 我已在路由配置中禁用重新加载搜索。我注意到更新位置不会更新$stateParams。是否有办法在位置更新时强制更新$stateParams?我浏览了ui路由器文档,但没有看到关于此场景的任何内容,但可能没有看到。我也遇到过类似的情况。如果禁用了reloadOnSearch,则无法跟踪路线更新,但我找到了解决此问题

我有一个angular应用程序,它使用ionic框架,在后端使用ui路由器

在我的一个控制器中,我调用:

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

我已在路由配置中禁用重新加载搜索。我注意到更新位置不会更新
$stateParams
。是否有办法在位置更新时强制更新
$stateParams
?我浏览了ui路由器文档,但没有看到关于此场景的任何内容,但可能没有看到。

我也遇到过类似的情况。如果禁用了
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;
完整。

我找到了
$urlRouter.sync()
,但在更新$location之后,它不会更新状态参数。您何时使用sync()<代码>$rootScope.$on(“$locationChangeSuccess”,函数(evt){$urlRouter.sync();})这是已验证的错误。