angularjs назад предыдущая страница state.go stateParams

Привет всем, я хочу знать, как сделать возврат на предыдущую страницу в AngularJS с помощью state.go stateParams или между двумя разными страницами. Я пробовал это, но переменная пуста:

   $ctrl.next = function(){

        $state.go('modiffili', {object:'test'});

    };

и этот контроллер моей второй страницы:

(function (angular) {
'use strict';

modiffiliCtrl.$inject=['$state','$stateParams'];


function modiffiliCtrl($state,$stateParams) {
    var $ctrl = this;


    console.log('modiffiliController');
    console.log($state.params.object);
   $ctrl.retour = function () {
        $state.go('^');
}

Я не могу использовать rootScope. спасибо, что помогли мне!


person Community    schedule 11.10.2016    source источник


Ответы (1)


Вы можете прослушать событие $stateChangeStart и сохранить имя и параметры предыдущего состояния, чтобы иметь возможность вернуться к нему.

$rootScope.$on('$stateChangeStart', function (event, toState, toStateParams, fromState, fromParams) {
   $rootScope.previousState = fromState;
   $rootScope.previousStateParams = fromParams;
});

И тогда вы можете позвонить $state.go($rootScope.previousState, $rootScope.previousStateParams), если вам это нужно

person Marcin Dusza    schedule 11.10.2016
comment
Спасибо, но мой босс не хочет, чтобы я использовал rootscope: / с маршрутизатором пользовательского интерфейса невозможно с помощью ng-click previoustate ()? или это единственное решение? Благодарность - person ; 11.10.2016
comment
Вы не должны бояться использовать $rootScope «просто так». Это единственное место, где вы можете быть уверены, что каждое событие в конечном итоге приземлится. Я знаю, что так делается в JHipster, поэтому я думаю, что это довольно приличное решение. С другой стороны, я нашел дополнение к ui-router, которое имеет эту функцию: REPO ДОКУМЕНТЫ Изменить: просто добавим, что этот сервис также использует $ rootScope ;) - person Marcin Dusza; 11.10.2016
comment
Просто примечание для будущих посетителей, такие трансляции, как это, теперь устарели и не включены в последние выпуски ui-router. Чтобы использовать эти события, вы должны перестроить проект и включить файл state-events. - person charliebeckwith; 10.11.2016