[英]Angular ui-router and back button with nested states
我在嵌套状态,解析和浏览器后退按钮上遇到了不好的时间。 在我的状态配置下,它由一个抽象状态和两个子状态组成,一个用于查看配置文件,一个用于保留配置文件。 通常的流程是打开配置文件页面,然后单击某个链接并打开请求页面; 这很好用。 但是,如果我单击profile-request页面上的浏览器后退按钮, 则会执行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 });
}
}
})
您是否尝试在Profiles中缓存profileData,然后在ProfileViewController中尝试获取缓存数据(如果存在)。
另一个选择是将profileData存储在$ rootScope中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.