2016-05-14 3 views
1

У меня плохое время с вложенным состоянием, разрешением и кнопкой браузера. Ниже моей конфигурации состояний он состоит из одного абстрактного состояния и двух детей, один для просмотра профиля, один, чтобы зарезервировать его. Обычный поток открывает страницу профиля, затем щелкните по какой-либо ссылке и откройте страницу запроса; это прекрасно работает. Однако, если я нажму кнопку браузера назад на профиль-запрос страница, Выполнен профиль ProfileViewController, но профильData не разрешен. Есть ли способ перезагрузить предыдущий вид, как он был (без необходимости рендеринга - он снова), или заставить разрешение обещания перед выполнением контроллера?Угловая кнопка ui-router и back с вложенными состояниями

$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.

Смежные вопросы