2016-07-25 19 views
0

ルーティング用にui-routeを使用しています。複数の順次形式があります。 後にフォームを提出すると、次のステップフォーム(ステップ)に行きたいと思っています。 $ state.go()関数にステップ名をハードコードしたくありません。 次の状態と前の状態を取得する方法はありますか?以前の状態を保存Angular.jsの次のステップまたは前のステップに移動するにはどうすればよいですか?

$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を++ creationgすることにより、 ???あなたが何を望んでいるのかわからない 数値でない場合は、「次の状態」のマッピングがありますここではたくさんのコンテキストがありません –

+0

$ state.current.nameは$ state .go()はドライバ状態にリダイレクトされます。 。私が車のページにいるなら、これは次の状態です。 –

+0

あなたはそれか何かのマッピングがありますか?または、次の状態を決定する関数を作成できますか?もしそうなら、現在のスコープでw/eでその関数を呼び出すことができます。 これは魔法のように動作することはできませんが、手作業でコーディングする必要があるロジックのようです。 –

答えて

1

手動で、リスナー

$rootScope.$on('$stateChangeSuccess', function(event, to, toParams, from, fromParams) { 
     //save the previous state in a rootScope variable so that it's accessible from everywhere 
     $rootScope.previousState = from; 
    }); 
    }]); 
$scope.onSubmit = function(){ 
    //if u want to go on previous state 
    $state.go($rootScope.previousState.name) 
} 
+0

非常にクールな解決 – Thatkookooguy

+1

ありがとうThatkookooguy :) – urvashi

+0

ありがとう、次のステップを取得する方法。 $ state.go($ rootScope.nextState.name)、それは動作しますか? –

関連する問題