angularjs – 调用$location.search()后更新ui-router中的$stateParams

前端之家收集整理的这篇文章主要介绍了angularjs – 调用$location.search()后更新ui-router中的$stateParams前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个角度应用程序,它使用离子框架,后端使用ui-router.

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

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

我在路由配置中禁用了reloadOnSearch.我注意到更新位置不会更新$stateParams.有没有办法强制$stateParams更新位置更新?我查看了ui-router文档,但没有看到任何关于这种情况,但也许我错过了它.

解决方法

我有类似的情况.如果您已禁用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.

猜你在找的Angularjs相关文章