Angular ui-router: 1 url trigger both parent and child state

When I go to the url /blog/post/edit, 2 xhr requests trigger, as you can see in the image below.

enter image description here

This is how I have defined the routes:

$stateProvider
    .state('blog', {
        url: '/blog',
        templateUrl: '/blog'
    })
    .state('blog.post', {
        url: '/post',
        template: '<ui-view></ui-view>',
        abstract: true
    })
    .state('blog.post.edit', {
        url: '/edit',
        templateUrl: '/blog/post/edit'
    });

Can anyone help me figuring out why this is happening?

Answers:

Answer

As quickly discussed in comments, the nature of the ui-router is to work this way. To show nested states with their parent states

The best way how to think about it is like a collapsed TreeView:

  • if we want to see a leaf (or any not root node) we have to see/load its parent, grand-parent ... and the root as well.
  • but once we want to see a sibling, we do not have to reload all the parent-to-root structure... is is already in play

And that's how the ui-router was basically designed.

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.