在Angularjs中将URL参数从一个状态传递到另一个状态

时间:2015-10-06 12:23:28

标签: angularjs

我正在与Angularjs合作开展当前项目。我将参数从一个状态传递到另一个状态。正确的。但每当我刷新页面时,该参数都返回null。这是我的工作代码。路由部分和家庭控制器和培训师控制器。

.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);

    });

1 个答案:

答案 0 :(得分:2)

为什么不存储你的"最后状态"在 localStorage或者更确切地说是sessionStorage ?当您加载页面时,如果值为null,则从localStorage获取它并恢复视图状态。

更新

1)每次获得最后一个州版本时,只需做一个window.localStorage.setItem(' myLastState',state);

2)当你加载应用程序并且没有状态时,window.localStorage.getItem(' myLastState')应该为你提供你需要的东西

首次加载时,您需要为这些状态提供一些默认值。