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

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

问题描述

当我转到 url /blog/post/edit 时,会触发 2 个 xhr 请求,如下图所示.

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?

推荐答案

正如评论中快速讨论的ui-router 的本质是工作 这样.显示嵌套状态及其父状态

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

最好的思考方式是折叠 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

ui-router 就是这样设计的.

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

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