2016-05-14 89 views
1

我的嵌套状态,解析和浏览器后退按钮的时间很糟糕。 在我的状态配置下面,它包含一个抽象状态和两个子状态,一个用于查看配置文件, 一个用于保留它。通常的流程是打开配置文件页面,然后点击某个链接并打开请求页面;这工作正常。但是,如果我点击配置文件请求页面上的浏览器后退按钮,ProfileViewController已执行,但profileData未解析。 有没有办法重新加载之前的视图(不必再次渲染)或强制执行控制器之前的承诺解析?嵌套状态的角度路由器和后退按钮

$stateProvider 
    .state('public', { 
    abstract: true, 
    templateUrl: 'app/public.html' 
}) 
.state('public.profile-view', { 
    url: '/profile/:slug', 
    templateUrl: 'app/profile/profile.view.html', 
    controller: 'ProfileViewController', 
    controllerAs : 'vm', 
    resolve: { 
     profileData: function($stateParams, Profiles) { 
     return Profiles.query({ slug: $stateParams.slug }); 
     } 
    } 
}) 
.state('public.profile-request', { 
    url: '/profile/request/:slug', 
    templateUrl: 'app/profile/profile.request.html', 
    controllerAs: 'vm', 
    controller: 'ProfileRequestController', 
    resolve: { 
     profileData: function($stateParams, Profiles) { 
     return Profiles.query({ slug: $stateParams.slug }); 
     } 
    } 
}) 

回答

0

您是否尝试过在配置文件中缓存profileData,然后在ProfileViewController中尝试获取已存在的缓存数据。

另一种选择是将profileData存储在$ rootScope中。

相关问题