Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Named routing substates have never worked for nested routes. #13072

Closed
nathanhammond opened this issue Mar 9, 2016 · 5 comments
Closed

Named routing substates have never worked for nested routes. #13072

nathanhammond opened this issue Mar 9, 2016 · 5 comments

Comments

@nathanhammond
Copy link
Member

Named routing substates (#3655) haven't ever properly accounted for route nesting. I've forked @machty's original JS Bin from before this feature was introduced to demonstrate broken nested behavior here.

Reproduction:

  • Click "Try again"
  • Click "nested route"
  • Click "nested sibling"

The last transition shows that navigation between two nested sibling routes does not trigger the global loading state as the "most specific" loading state in the hierarchy. This conflicts with his description in the JS Bin, as well as the docs we had at approximately that time.

According to our documentation the expected behavior is full bubbling, grabbing the leaf-most error or loading substate. This behavior is different again in 2.3+, presumably as a consequence of the owners change.

I propose (and volunteer) to actually make this behavior match our documentation and function as expected. This is a "breaking" change, but is also a bugfix.

/cc @machty @alexspeller

@nathanhammond
Copy link
Member Author

parent/child/grandchild => parent/otherchild/othergrandchild

Priority:

  1. parent/otherchild_loading || parent/loading
  2. parent/otherchild
  3. parent/otherchild/othergrandchild_loading || parent/otherchild/loading
  4. parent/otherchild/othergrandchild

@nathanhammond
Copy link
Member Author

parent/child/grandchild => parent/otherchild/boom

Priority:

  1. parent/otherchild_loading || parent/loading
  2. parent/otherchild
  3. parent/otherchild/boom_loading || parent/otherchild/loading
  4. parent/otherchild/boom => error

Error handling:

  1. parent/otherchild/boom_error
  2. parent/otherchild/error
  3. parent/otherchild_error
  4. parent/error
  5. parent_error
  6. error
  7. application_error

@ShogunPanda
Copy link

+1 - Please fix this!

@machty
Copy link
Contributor

machty commented Mar 13, 2016

@nathanhammond can you provide an update? I believe when we were going through this on the community Slack, everything was behaving as expected (just that perhaps things are poorly documented / unclear?)

@nathanhammond
Copy link
Member Author

I'm still writing tests make sure that this works. my current belief is that it is implemented correctly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants