You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UI-Router根路径访问自动重定向至特定空URL子状态原因咨询

为什么访问根路径会自动跳转到parent.foto3?

这是因为ui-router 1.x的自动子状态激活机制:当你访问父状态parent的URL(/)时,如果该父状态存在多个子状态的相对URL为空字符串(即子状态的完整URL与父状态完全一致),ui-router会自动尝试激活其中一个子状态,而不是停留在父状态。

至于为什么恰好是parent.foto3而不是其他同URL子状态,核心原因是ui-router在无显式默认子状态时的匹配优先级规则:

  • 当多个子状态的URL完全匹配当前路径时,ui-router会结合状态的注册顺序和参数配置来选择优先级最高的状态。
  • 在你的配置中,parent.confirmacao带有动态参数aviso,这类带参数的子状态匹配优先级会低于无额外参数的子状态;而parent.foto3是注册顺序中较早出现的无参数子状态,因此被ui-router选中作为默认激活的目标。
如何控制默认激活的子状态?

如果你想明确指定访问根路径时激活哪个子状态,最可靠的方式是给父状态parent设置defaultChild属性:

.state('parent', {
  url: '/',
  views: {
    '$default': { component: 'parent' }
  },
  defaultChild: 'parent.confirmacao' // 替换成你想要默认激活的子状态名称
})

这样,当访问根路径时,ui-router会直接激活你指定的子状态,完全避免依赖自动匹配的优先级规则。

另外,如果你希望访问根路径时停留在父状态parent而不激活任何子状态,可以修改子状态的URL配置,将空字符串改为非空的相对路径(比如/confirmacao),避免子状态URL与父状态重叠。

内容的提问来源于stack exchange,提问作者brazuka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:27:23