Angular 如何创建角度';s路径匹配无限循环?
读取路由时,我已到达路由接口的pathMatch属性。这里写着: 路径匹配策略,“前缀”或“完整”之一。默认为 “前缀” 默认情况下,路由器从左侧检查URL元素,以查看 URL匹配给定路径,并在存在匹配时停止。对于 例如,“/team/11/user”匹配“team/:id” 路径匹配策略“完全”匹配整个URL。它是 重定向空路径路由时,必须执行此操作。否则,, 因为空路径是任何URL的前缀,所以路由器将应用 即使在导航到重定向目标时,也会发生重定向, 创造一个无止境的循环 我做了一个测试来创建这个循环。对于这两个路径,如果我转到空路径页面,将加载单次ProductListComponent组件:无循环Angular 如何创建角度';s路径匹配无限循环?,angular,routes,Angular,Routes,读取路由时,我已到达路由接口的pathMatch属性。这里写着: 路径匹配策略,“前缀”或“完整”之一。默认为 “前缀” 默认情况下,路由器从左侧检查URL元素,以查看 URL匹配给定路径,并在存在匹配时停止。对于 例如,“/team/11/user”匹配“team/:id” 路径匹配策略“完全”匹配整个URL。它是 重定向空路径路由时,必须执行此操作。否则,, 因为空路径是任何URL的前缀,所以路由器将应用 即使在导航到重定向目标时,也会发生重定向, 创造一个无止境的循环 我做了一个测试来创建
{ path: 'list', component: ProductListComponent },
{ path: '', redirectTo: 'list', pathMatch: 'prefix' }
我的考试出了什么问题?这个循环实际上是什么样子的?也许我误解了 问题是你在说:
{ path: '', component: MainLayoutComponent, pathMatch: 'prefix'}
这基本上是说:
找到任何以零(“”)开头的url,简单地说,所有url总是以零开头
考虑一下这个url/google
或者此url
如果您运行一个正则表达式并说这些URL是否与“”匹配,那么是的
欲了解更多信息,请查看:
有关前缀的重要更新:
const appRoutes: Routes = [
{ path: 'crisis-center', component: CrisisListComponent },
{ path: 'heroes', component: HeroListComponent },
{ path: '', redirectTo: '/heroes', pathMatch: 'full' },
{ path: '**', component: PageNotFoundComponent }
];
从技术上讲,pathMatch='full'会在URL的剩余不匹配段匹配“”时导致路由命中。在本例中,重定向位于顶级路由中,因此剩余URL和整个URL是相同的
另一个可能的pathMatch值是“prefix”,它告诉路由器在剩余URL以重定向路由的前缀路径开始时匹配重定向路由
不要在这里这样做。如果路径匹配值为“前缀”,则每个URL都将匹配“”
尝试将其设置为“prefix”,然后单击转到sidekicks按钮。请记住,这是一个错误的URL,您应该看到“未找到页面”页面。相反,你仍然在“英雄”页面上。在浏览器地址栏中输入错误的URL。你会立即被传送到/英雄。符合此路由定义的每个URL,无论好坏,都将是一个匹配项。
只有当整个url为“”时,默认路由才应重定向到HeroListComponent。请记住将重定向恢复到pathMatch='full'
在中了解更多信息