Есть ли способ создать запрещенную кнопку, которая идет на страницу, где блокировалась страница 404? - PullRequest
0 голосов
/ 30 апреля 2018

В моем проекте, использующем ui-router, у меня есть страница 404, которая появляется всякий раз, когда определенного компонента не существует (в противном случае). Таким образом, вместо отображения поврежденного JSON запускается страница 404. Есть ли способ создать кнопку на моей странице 404, которая при нажатии приводит пользователя на страницу сломанного JSON?

1 Ответ

0 голосов
/ 30 апреля 2018

Вы можете поймать параметры и состояния с помощью $rootScope, $stateChangeStart

app.run(function($rootScope, SpinnerService) {
  $rootScope.$on('$stateChangeStart', function(evt, toState, toParams, fromState, fromParams) {
    console.log("$stateChangeStart " + fromState.name + JSON.stringify(fromParams) + " -> " + toState.name + JSON.stringify(toParams));
    if(toState.name === 'errorPage'){
        toParams.latestState = fromState;
    }

  });
})

Создайте состояние, которое включает вашу страницу ошибки. И добавьте действие состояния, которое работает с последними параметрами и последним состоянием.

$stateProvider.state('errorPage', {
  templateProvider: function ($timeout, $stateParams) {
    return $timeout(function () {
      return '<button ui-sref="'+$stateParams.latestState+'"></button>'
    }, 100);
  }
})

Вы можете сделать это с шаблоном, контроллером, templateUrl, controllerProvider или сохранением самой последней переменной внутри $ rootScope.

Существует много способов сделать это. Я думаю, что внимательно прочитайте эту статью https://github.com/angular-ui/ui-router/wiki

...