我在嵌套状态,解析和浏览器后退按钮上遇到了不好的时间。 在我的状态配置下,它由一个抽象状态和2个子状态组成,一个用于查看配置文件, 一个保留它。通常的流程是打开配置文件页面,然后单击某个链接并打开请求页面;这很好用。但是,如果单击 profile-request 页面上的浏览器后退按钮,则会执行 ProfileViewController ,但不会解析profileData。 有没有办法重新加载以前的视图(无需再次渲染)或在执行控制器之前强制执行promise解析?
$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 :(得分:0)
您是否尝试在Profiles中缓存profileData,然后在ProfileViewController中尝试获取缓存数据(如果存在)。
另一个选择是将profileData存储在$ rootScope中。