web-dev-qa-db-ja.com

angular ui-routerのブラウザ履歴を変更せずに状態を変更する

次のようなロジックがあるとします。

  • 状態Aから状態Bに変更します。
  • 状態Bに到達するたびに、アプリは常に$state.go(stateC)を呼び出して状態Cにリダイレクトします
  • これで状態Cになりました

私の質問は、状態Cから状態Aに戻る方法です(状態Aは実行時に不明な任意の状態になる可能性があります。つまり、ユーザーは他のどの状態からでも状態Bにアクセスできます)。

21
Thịnh Phạm

locationオプションと値 "replace"...を使用します...

$state.go(stateC, null, {
    location: 'replace'
})

https://angular-ui.github.io/ui-router/site/#/api/ui.router.state.$state#methods_go を参照してください

location-{boolean = true | string =}-trueがロケーションバーのURLを更新する場合、false しない。文字列の場合、"replace"は、URLを更新し、最後の履歴レコードを置き換えます

36
Phil