Issue with pushstate history in master-detail


I think the behaviour of browser’s history.back() and forward() with master-detail is imperfect.
Even the url bar’s urls change correctly, the contents do not go back to the old states in some cases.

I think the root cause is that, F7 does not re-evaluate the pushstate-hash from master to detail routes when navigating between histories.
I am not sure if this is an issue or just I don’t understand F7 well.

Please take a look, thanks!


Case 1:

  1. click PAGE-A
    url is /#!/a, shows A in master, empty detail
  2. click PAGE-A/1
    url is /#!/a/1, detail becomes A/1
  3. history.back()
    url becomes /#!/a, good,
    but detail does not change to empty as in step 1.

Case 2:

  1. click PAGE-A/1
    url is /#!/a/1, shows A in master, A/1 in detail
  2. click PAGE-A
    url is /#!/a, empty detail
  3. history.back()
    url becomes /#!/a/1, good,
    but breaks master-detail, shows only A/1

Case 3:

  1. click PAGE-B
    url is /#!/b, shows page-B (not master-detail)
  2. click PAGE-A/1 (or click PAGE-A, then click PAGE-A/1)
    url is /#!/a/1
  3. history.back()
    url becomes /#!/a, but shows page-B
  4. history.back()
    url becomes /#!/b, shows page-B
    (step4 is good, step3 failed to show page-A)