我有一个app.routes.ts文件,其中有一个名为appRoutes的数组。我的阵列结构是这样的:
const appRoutes: Routes = [
...
{
path: 'example/:example1/:example2',
loadChildren: () => import('./example/example.module').then(m => m.Example),
resolve: {
example: ExampleResolver
},
data: {
title: 'Example'
},
canActivate: [ ValidateExample ]
},
...
{
path: '**', redirectTo: '/home',
}
其中appRoutes数组中的最后一个对象是
path: '**', redirectTo: '/home'
在这种情况下,双星号意味着什么?它与有何关系
redirectTo: '/home'
path
属性使用wildCard
进行路径匹配。路由器获取您的路径,并尝试将其与数组对象内注册的路径匹配,直到找到匹配。这个搜索过程可以是精确的搜索或者匹配通配符
无论您给**
通配符什么搜索值,它都将始终返回true。因此,如果所有路径都返回no匹配,则带有此通配符的路径将返回true,这样您的应用程序就不会出错。这样的路径用于显示404错误页面或重定向到主页。
要在Angular中设置通配符路由,请使用"**"(双星号(。此通配符路由捕获路由定义中未配置的所有路由。
{路径:"**",组件:component_NAME}
这个路由顺序很重要,因为路由器使用的是先赢后赢的策略。匹配路由时,如果匹配每个URL的通配符路由位于顶部,则与通配符路由配对的组件将始终被调用。遵循以下顺序:
- 首先列出具有静态路径的路由
- 空路径路由(可能有重定向(
- 通配符路由排在最后
https://angular.io/guide/router#route-订单