Есть такая же проблема. Надеюсь, это поможет вам Как заставить кнопку «Назад» работать с конечным автоматом пользовательского интерфейса AngularJS?
Это немного сложно для меня, и кажется, что должно быть более простое решение
Редактировать: я сделал это. Прежде всего вам нужно ваше старое состояние (также у нас есть оболочка для локального хранилища, поэтому вам следует изменить методы).
angular
.module('app')
.run(appRunFunction);
appRunFunction.$inject = ['$rootScope', 'localstorage'];
function appRunFunction($rootScope, localstorage) {
$rootScope.$on('$stateChangeSuccess', function(event, toState, toParam, fromState, fromParam) {
localstorage.setValue('lastState', fromState.name);
});
};
Мы также написали сервис, который перенаправляет из абстрактного состояния в обычное состояние после сравнения вашего следующего обычного состояния с вашим последним.
angular
.module('app.services')
.factory('states', states);
states.$inject = ['$state', 'localstorage'];
function states($state, localstorage) {
var service = {reloadWithParam: reloadWithParam};
return service;
function reloadWithParam(param, value) {
var fromState = localstorage.getValue('lastState') + '.' + localstorage.getValue('lastPage');
var toState = $state.current.name + '.' + value;
var paramObject = {};
paramObject[param] = value;
if (fromState === toState) {
window.history.go(-1);
} else {
$state.go($state.current, paramObject, { notify: false});
localstorage.setValue('lastPage', value);
}
}
}
person
Aleksey Solovev
schedule
14.06.2016