2017-05-16 7 views
0

私は自分のアプリケーションのangularjsに問題があります。クリックして戻るブラウザの動作に戻る

私は4ステップチェックアウトしています。

第2ステップはサインイン/サインアップのステップです。

3つ目の手順に進み、ブラウザの[戻る]ボタンをクリックすると、既にログに記録されているため、3番目の手順にリダイレクトされます。

例:
ステップ1:オファー
ステップ2:サインインもサインアップ
手順3:お支払い ...

あなたがサインイン/サインアップに行くとすでにログインしている場合、それはリダイレクトします

したがって、手順1に戻る場合は、ブラウザが手順2にアクセスして手順3にリダイレクトしようとしているため、できません。

これについてのヒントは?

ステップ2の私のコントローラ:数時間後

... 

if ($cookies.get(config.connectionCookie)) { 
    $location.path('/step3'); 
} 

... 
+0

角度のルートコードを追加できますか? –

+0

@PraveenMPそれはうまく動作します、それは例です、私はちょうどブラウザの戻るボタンをクリックすると、最初の手順に戻る方法を知りたい –

答えて

1

、私はこのために少しハック作るている:私のステップ3で

を、私は私のrootscopeに変数を追加します。

$rootScope.referer = "step3"; 

そして、私のステップ2に私はこのようなコントローラ変更しました:

if ($cookies.get(config.connectionCookie)) { 
    if($rootScope.referer == "step3"){ 
     delete $rootScope.referer; 
     $location.path('/step1'); 
    }else{ 
     $location.path('/step3'); 
    } 
} 

それは本当に簡単だし、仕事をする、それはリファラだ、この変数は唯一のステップ3で作成され、そのため、1

段階にリダイレクトする前に、ステップ2で削除された今、私たちはステップ1であるとしたいです手順2に進むには、referrer変数が定義されていないので、手順3でリダイレクトされ、参照元変数が再作成され、必要に応じてもう一度作成されます。