我是新手,我在Angular 6中遇到路由器问题。 我有三种语言:en,de,fr。所以现在,我在地址栏上的网址是:
但是我想要使用En(默认语言),我的网址应如下所示:
剩下的是:
这是我的配置路线:
const routes: Routes = [
{
path: ':lang/home',
component: LandingPageComponent,
children: LandingPagePageRoutes
},
{
path: ':lang/product',
component: ProductSinglePageComponent,
children: ProductPageRoutes
},
{
path: '',
redirectTo: `/${LANG}/home`,
pathMatch: 'full'
},
{
path: '**',
redirectTo: `/${LANG}/home`,
}
];
我们能做到吗?如果是,请给我发送一些例子吗?非常感谢!
答案 0 :(得分:1)
因为Angular不允许从另一个重定向进行重定向,所以我认为可以做到这一点的一种方法是,在根组件的构造函数中,可能是app.component.ts
,当出现以下情况时,您可以获取页面的网址:应用启动,然后重定向到localhost:4200/home
(如果它是localhost:4200/en/home
)。您的代码将如下所示。
app.component.ts
import { Router } from '@angular/router';
constructor(private router: Router) {
if(this.router.url === "/en/home"){
router.navigateByUrl('/home')
}
}
然后在路由模块中,您应该具有一个与/home
匹配的网址
这样的事情。
{
path: 'home',
component: EnglishLandingPageComponent
}