Angular 重定向到延迟加载模块中的参数
Angular redirect to parameter in lazy loaded module
我有一些延迟加载的路由如下:
const routes: Routes = [
{
path: ':lang',
loadChildren: './components/home/home.module#HomeModule',
// redirectTo: "en"
},
{
path: ':id/customers',
loadChildren: './components/customers/customers.module#CustomersModule'
},
{
path: 'products',
loadChildren: './components/products/products.module#ProductsModule'
}
];
当我打开带有此 url 的页面时:http://localhost:4200/en
它工作正常。但是用户不知道将 en
参数添加到 url,因此页面不会在没有参数的情况下加载。所以,我必须将它重定向到 /en
。但是当我使用 redirectTo: "en"
时,出现以下错误:
Error: Invalid configuration of route ':lang': redirectTo and loadChildren cannot be used together
我发现了一些关于此错误的信息,但与我的情况无关。有什么想法吗?
首先,您的路由在:lang 和:id 之间存在冲突。
你能试试吗:
theObjectOfYourIds/:id/customers
和
languages/:lang
对于你的问题,
您不能使用 loaChildren 的 redirectTo。
如果您想转到 'en',请在您的组件中执行策略(例如 app.component.ts
)。
在路由 :lang
上设置 redirectTo 意味着:如果用户在该路由上,则应将其重定向到 /en
。那不是你想要的。当路径是根路径时,您想将用户重定向到 /en
。所以你需要添加一个空路径路由并从那里重定向:
{
path: '',
redirectTo: '/en',
pathMatch: 'full'
}
我有一些延迟加载的路由如下:
const routes: Routes = [
{
path: ':lang',
loadChildren: './components/home/home.module#HomeModule',
// redirectTo: "en"
},
{
path: ':id/customers',
loadChildren: './components/customers/customers.module#CustomersModule'
},
{
path: 'products',
loadChildren: './components/products/products.module#ProductsModule'
}
];
当我打开带有此 url 的页面时:http://localhost:4200/en
它工作正常。但是用户不知道将 en
参数添加到 url,因此页面不会在没有参数的情况下加载。所以,我必须将它重定向到 /en
。但是当我使用 redirectTo: "en"
时,出现以下错误:
Error: Invalid configuration of route ':lang': redirectTo and loadChildren cannot be used together
我发现了一些关于此错误的信息,但与我的情况无关。有什么想法吗?
首先,您的路由在:lang 和:id 之间存在冲突。
你能试试吗:
theObjectOfYourIds/:id/customers
和
languages/:lang
对于你的问题,
您不能使用 loaChildren 的 redirectTo。
如果您想转到 'en',请在您的组件中执行策略(例如 app.component.ts
)。
在路由 :lang
上设置 redirectTo 意味着:如果用户在该路由上,则应将其重定向到 /en
。那不是你想要的。当路径是根路径时,您想将用户重定向到 /en
。所以你需要添加一个空路径路由并从那里重定向:
{
path: '',
redirectTo: '/en',
pathMatch: 'full'
}