我正在与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);
});
答案 0 :(得分:2)
为什么不存储你的"最后状态"在 localStorage或者更确切地说是sessionStorage ?当您加载页面时,如果值为null,则从localStorage获取它并恢复视图状态。
更新:
1)每次获得最后一个州版本时,只需做一个window.localStorage.setItem(' myLastState',state);
2)当你加载应用程序并且没有状态时,window.localStorage.getItem(' myLastState')应该为你提供你需要的东西
在首次加载时,您需要为这些状态提供一些默认值。