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

Angular路由顺序问题:'all-movies'路由行为不符预期求解

问题解释:路由匹配顺序导致的差异

Angular的路由是从上到下按顺序匹配的,只要匹配到第一条符合规则的路由,就会停止后续匹配,这就是问题的核心原因:

  • 当all-movies路由放在:id路由之后时,Angular会把all-movies当成是:id这个动态参数的具体值,直接触发:id路由对应的MovieResolver——而你的Resolver里应该包含了向API发送GET请求的逻辑,所以才会出现意外的API调用。
  • 把all-movies移到create路由上方(也就是所有动态参数路由之前)时,Angular会先匹配到这个明确的字符串路由,直接加载AllMoviesComponent,不会再去匹配后面的:id路由,自然就不会触发Resolver里的API请求,行为符合预期。

调整后的正确路由顺序示例:

const routes: Routes = [ 
  { 
    path: 'all-movies', 
    component: AllMoviesComponent 
   },
  { 
    path: 'create', 
    component: CreateComponent, 
    canActivate: [MovieGuardService] 
  }, 
  { 
    path: ':id', 
    resolve: { 
      cres: MovieResolver, 
    }, 
    component: MovieComponent, 
  }, 
  { 
    path: ':id/edit', 
    resolve: { 
      cres: MovieResolver, 
    }, 
    component: EditComponent, 
    canActivate: [MovieGuardService] 
  }, 
];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:00:59