2015-10-06 127 views
1

我正在为当前项目使用Angularjs。我将参数从一个状态传递到另一个状态。正确获取。但是,无论何时刷新页面,该参数都会返回为空。这是我的工作代码。路由部分和家庭控制器和教练员控制器。在Angularjs中将URL参数从一种状态传递到另一种状态

.state('search.trainer', { 
    params: {'ind_array': null}, 
    url: '/trainer', 
    templateUrl: 'tpl/trainer.search.html', 
    resolve: {   
     deps: ['uiLoad', 
     function (uiLoad) { 
    return uiLoad.load(['js/controllers/trainerCtrl.js']); 
         }], 
    ind_array: ['$stateParams', function($stateParams) { 
       return $stateParams.ind_array; 
      }], 
     }, 
    controller: "trainerctrl", 
     }); 
myApp.controller('homectrl', function($scope, $state, $stateParams) { 
     if($scope.search=="trainers"){ 
    $state.go('search.trainer', { ind_array : $scope.Selectdid}); 
    } 
}); 

    myApp.controller('trainerctrl', function($scope, $state, $stateParams, ind_array) { 

     console.log(ind_array); 

    }); 
+0

你可以在URL本身中编码参数吗?让我们说:'url:'/ trainer /:trainer_id'' –

+0

@Paulo我也试过。上面提到,使用像上面一样..我的页面被重定向,但是,URL没有变化 –

回答

2

为什么不存储的localStorage或sessionStorage的,而你的 “最后的状态”?并且,当您加载页面时,如果该值为null,则从localStorage中获取并恢复视图状态。

UPDATE

1)每次你得到的最后状态的版本时,只是做一个window.localStorage.setItem( 'myLastState',状态);

2)当您加载应用程序,而且也没有状态,window.localStorage.getItem(“myLastState”)应该会提供你所需要的

第一负载你就需要提供一些默认的那些状态。

+0

我从来没有与localStorage/sessionStorage一起工作可以请我指导我如何使用localStorage/sessionStorage实现 –

+0

这很简单。 ** sessionStorage **基本相同,唯一的区别是localStorage在关闭浏览器时保留数据,而sessionStorage在关闭时“过期”。 对于使用本身,请参阅更新的答案。 –

相关问题