我有一个Angular网站。在所有的路由中,我有一个文化路由参数,叫做:文化。所以,URL的内容是这样的。
http://domain.eu/en/start
http://domain.eu/nl/start
现在,当用户进入网站时,他可以使用外部提供者登录(通过身份服务器),成功登录后,他将被重定向回网站的根部。http:/domain.eu.
我的问题是,我想根据用户在配置文件设置中保存的文化重定向到正确的起始页。例如,用户X登录并将荷兰语作为他的默认语言。
在我的app-routing.module.ts中,我有。
const appRoutes: Routes = [
{
path: '',
redirectTo: 'en/start',
pathMatch: 'full',
},
];
...我想知道如何重定向到正确的文化,而不是硬编码的 "enstart"。我可以使用一个变量来构建重定向路径或类似的东西吗?
你可以使用route paramters来实现,见下面的例子。
const appRoutes: Routes = [
{
path: '',
redirectTo: ':culture/start',
pathMatch: 'full',
},
];
设置完路由参数后,像平时一样重定向即可。
你可以将路径:''连接到MyRedirectComponent。
ngOnInit() {
const locale = 'en'; // TODO your logic
this.router.navigate(['/' locale + '/start']);
}
我会使用Guard和导航到路由上 router.navigate