我有以下ui-router状态。
.state('admin.userView', {
abstract:true,
url:'/user/:id/',
templateUrl:'./views/user/view.html',
controller:'userViewController'
})
.state('admin.userView.home', {
url:'',
templateUrl:'./views/user/home.html',
controller:'userHomeController'
})
我已经使用userViewController中的http资源获取用户详细信息到$ scope.users。 当我转到admin.userView.home状态时,我可以访问$ scope.users。 但是当我使用子状态刷新页面时,$ scope.users中的值将丢失。 我怎么能得到相同的。
答案 0 :(得分:2)
尝试将该数据移动到admin.userView
状态声明的resolve属性中。由于您在此处使用嵌套解析,因此可以将已解析的数据注入admin.userView.home
状态声明。这是ui-router文档的摘录。
$stateProvider.state('parent', {
resolve:{
resA: function(){
return {'value': 'A'};
}
},
controller: function($scope, resA){
$scope.resA = resA.value;
}
})
.state('parent.child', {
resolve:{
resB: function(resA){
return {'value': resA.value + 'B'};
}
},
controller: function($scope, resA, resB){
$scope.resA2 = resA.value;
$scope.resB = resB.value;
}