Вы можете поймать параметры и состояния с помощью $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