Skip to content

[4.0.0-beta.17] Angular's Location.back() has no navigation animation #16569

Closed
@KevinKelchen

Description

@KevinKelchen

Bug Report

Ionic Info

Ionic:

   ionic (Ionic CLI)             : 4.5.0 (/usr/local/lib/node_modules/ionic)
   Ionic Framework               : @ionic/angular 4.0.0-beta.19
   @angular-devkit/build-angular : 0.10.7
   @angular-devkit/schematics    : 7.0.7
   @angular/cli                  : 7.0.7
   @ionic/angular-toolkit        : 1.2.0

System:

   NodeJS : v10.13.0 (/usr/local/bin/node)
   npm    : 6.4.1
   OS     : macOS Mojave

Describe the Bug
Using Angular's Location.back() has no navigation animation instead of the back navigation animation.

Steps to Reproduce
Steps to reproduce the behavior:

  1. Clone this repo on your machine: https://github.com/KevinKelchen/ionic4-stack-page-reuse . It is a slightly modified version of the sidemenu Angular stater template. You will need to switch to the custom-back-button branch.
  2. In the terminal, path into the repo root and run npm i.
  3. Run ionic serve.
  4. Open the Chrome DevTools and click the Toggle device toolbar button to simulate a mobile device. From the device dropdown choose an iOS device such as an iPhone X.
    • Choosing an iOS device will use the iOS styling mode. This issue is present in both modes; it's just that the iOS styling mode makes the navigation animation direction used more obvious than the default Material Design navigation animation.
  5. Click the Menu icon and then List.
  6. Click Item 1 to forward navigate to the detail screen for Item 1.
  7. Click Item 2 to forward navigate to the detail screen for Item 2.
  8. Click Item 3 to forward navigate to the detail screen for Item 3.
  9. Click Item 4 to forward navigate to the detail screen for Item 4.
  10. Notice the in-app Back button.
  11. Click the in-app Back button and watch the navigation animation. You will see as you continue to click the Back button that it uses no navigation animation even though it's using Location.back() to go back in the browser history stack.

Related Code
A sample application has been provided. See the Steps to Reproduce above.

Expected Behavior
I expected that using Angular's Location.back() to navigate back in the browser's history stack would use the back navigation animation instead of no navigation animation.

Additional Context
See the Steps to Reproduce above for the rationale for using a custom Back button and the related GitHub issues. This behavior change was introduced in Beta 17--perhaps related to fixing #16367.

FWIW, using the Android back button does seem to animate appropriately as does the ion-back-button. The browser back/forward buttons have no navigation animation but that seems appropriate given that it's in a browser context.


Thanks again for all that you do in making a great framework! 😀

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions