Как перейти к следующему или предыдущему шагу в Angular.js?

0

Я использую ui-route для маршрутизации. Существует несколько последовательных форм. Когда я отправлю форму после этого, я хочу перейти к следующей шаге (шаг). Я не хочу, чтобы жесткое имя шага кода в функции $ state.go(). Есть ли способ получить следующее и предыдущее состояние?

  $stateProvider
               .state("Cars", {
                  url: "/",
                  templateUrl: "/rc1/renderStep/cars",
               })
               .state("Drivers", {
                  url: "/drivers",
                  templateUrl: "/rc1/renderStep/drivers",
                  controller: "renderStepCtrl",
               })
        }])

вызов изменения состояния

$scope.onSubmit = function () {
                  postDtoFactory.postDto(); 
                  console.info('current page= '+$state.current.name);
                  //console.log('prev = '+$state.previous.route.name);
                  $state.go();
               };
  • 0
    $ state.current.name ++; ??? Не уверен, что вы хотите. Если это не число, у вас есть отображение «следующего состояния»? Мы упускаем здесь целый контекст
  • 0
    $ state.current.name дает имя текущего состояния, когда я вызываю $ state.go (), это перенаправляет это состояние в состояние драйверов. , это следующее состояние, если я нахожусь на странице автомобилей.
Показать ещё 2 комментария

1 ответ

1

Сохранять предыдущее состояние вручную, путем создания g прослушивателя

 $rootScope.$on('$stateChangeSuccess', function(event, to, toParams, from, fromParams) {
        //save the previous state in a rootScope variable so that it accessible from everywhere
        $rootScope.previousState = from;
    });
  }]);
$scope.onSubmit = function(){
  //if u want to go on previous state
  $state.go($rootScope.previousState.name)
}
  • 0
    очень классное решение
  • 1
    Спасибо, что очень хорошо :)
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню