サーバー側のリソースが必要route
です。resolve
そのリソースは認証を要求します。そのため、キャンセル可能なログインフォームポップアップを表示します。キャンセルすると、ルート/解決が正しく取得rejected
および起動されます。$routeChangeError
問題は、アドレスバーに失敗した場所/URL と不要な履歴エントリがあることです。
リロードせずに現在の場所の URL を最後のものに置き換えるにはどうすればよいですか? また、ルート変更が失敗した後、現在の履歴エントリを削除するにはどうすればよいでしょうか?
編集: angular-http-auth を使用します。これが私のルーティングです:
/home
> /item
(認証が必要なリソースを解決する必要があります。ログイン フォームにログインしていない場合、キャンセル可能なポップアップが開きます)
認証をキャンセルすると、$routeChangeError が発生し、レンダリングされない/home
ためにまだページにいます。/item
アドレス バーに間違った URL が表示されるようになりました。/item