为何Angular路由配置pathMatch: 'full'时,无法匹配/kotak/login路径?
问题原因解析
你遇到的问题核心是对Angular路由中pathMatch: 'full'的作用理解有误:
pathMatch: 'full'的作用是要求当前路由的路径必须完全匹配URL的剩余部分,不允许有任何后续的子路径。- 你的父路由配置了
path: 'kotak'和pathMatch: 'full',这意味着只有当URL精确等于/kotak时,才会匹配这个父路由。当你访问/kotak/login时,URL的剩余部分是kotak/login,父路由的path: 'kotak'加上pathMatch: 'full'会判定当前需要完全匹配kotak,但后面多了/login,所以父路由直接不匹配,子路由自然也不会被触发。 - 当你移除
pathMatch: 'full'后,Angular会使用默认的pathMatch: 'prefix'规则,只要URL以kotak开头,就会匹配父路由,然后继续查找对应的子路由login,所以路由就能正常工作了。
总结:带有子路由的父路由,绝对不能加pathMatch: 'full'——因为父路由需要作为子路由的前缀存在,而不是精确匹配整个URL。
内容的提问来源于stack exchange,提问作者Pawan Nogariya
相关产品推荐
相关产品推荐

