繁体   English   中英

具有嵌套状态的Angular ui-router和后退按钮

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM