Angular ui-router: 1 url 触发父子状态 [英] Angular ui-router: 1 url trigger both parent and child state

查看:20
本文介绍了Angular ui-router: 1 url 触发父子状态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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?

解决方案

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.

这篇关于Angular ui-router: 1 url 触发父子状态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆