angularjs重新加载页面后如何处理$ stateParams变量

时间:2016-05-05 11:42:42

标签: angularjs

我想知道在重新加载页面后我应该如何保留$ stateParams变量。

.state('proSearch', {
                    url: '/proSearch/:city',
                    params: {
                        location: null
                    },
                    templateUrl: 'imports/client/ui/proSearch/proSearch.html',
                    controller: 'proSearchController',
                    controllerAs: 'vm'
                })

当重新加载页面时,我的控制器丢失了$ stateParams.location数据。我怎么能保存它?

2 个答案:

答案 0 :(得分:0)

您可以使用$ stateParams服务在控制器中访问它。

function MainController($scope, $stateParams, $state) {

 
    var city = $stateParams.location
    
    state.go($state.current, {location: city}, {reload: true});

}

此代码将您的位置参数保留在城市变量中,第二行使用当前城市参数刷新页面。我希望它有所帮助

答案 1 :(得分:0)

您可以将$ stateParams数据保存在$ scope变量而不是本地变量上。您的范围内仍存在$ scope变量。

$scope.city = $stateParams.location;

只要引用$ scope。

,就可以在其他控制器上访问$ scope变量

我猜你不需要重新加载页面。双向数据绑定是一个很酷的概念,它鼓励不必重新加载页面来查看数据更新。