Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何创建角度';s路径匹配无限循环?_Angular_Routes - Fatal编程技术网

Angular 如何创建角度';s路径匹配无限循环?

Angular 如何创建角度';s路径匹配无限循环?,angular,routes,Angular,Routes,读取路由时,我已到达路由接口的pathMatch属性。这里写着: 路径匹配策略,“前缀”或“完整”之一。默认为 “前缀” 默认情况下,路由器从左侧检查URL元素,以查看 URL匹配给定路径,并在存在匹配时停止。对于 例如,“/team/11/user”匹配“team/:id” 路径匹配策略“完全”匹配整个URL。它是 重定向空路径路由时,必须执行此操作。否则,, 因为空路径是任何URL的前缀,所以路由器将应用 即使在导航到重定向目标时,也会发生重定向, 创造一个无止境的循环 我做了一个测试来创建

读取路由时,我已到达路由接口的pathMatch属性。这里写着:

路径匹配策略,“前缀”或“完整”之一。默认为 “前缀”

默认情况下,路由器从左侧检查URL元素,以查看 URL匹配给定路径,并在存在匹配时停止。对于 例如,“/team/11/user”匹配“team/:id”

路径匹配策略“完全”匹配整个URL。它是 重定向空路径路由时,必须执行此操作。否则,, 因为空路径是任何URL的前缀,所以路由器将应用 即使在导航到重定向目标时,也会发生重定向, 创造一个无止境的循环

我做了一个测试来创建这个循环。对于这两个路径,如果我转到空路径页面,将加载单次ProductListComponent组件:无循环

{ 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'

在中了解更多信息