angularjs - 刷新子状态视图会导致父状态丢失数据

时间:2015-04-15 15:03:37

标签: angularjs angular-ui-router

我有以下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中的值将丢失。 我怎么能得到相同的。

1 个答案:

答案 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;
      }

Source