Есть ли способ создать неприемлемую кнопку, которая идет на страницу, на которой была заблокирована страница 404?

134
14

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

спросил(а) 2021-01-19T13:45:44+03:00 6 месяцев назад
1
Решение
89

Вы можете уловить параметры и состояния с помощью $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);
}
})

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

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

ответил(а) 2021-01-19T13:45:44+03:00 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема