Angular 2 - 如何从路线获取语言文化名称(en-US)?

时间:2017-02-25 08:29:19

标签: angular angular2-routing

我无法从URL中找到lang-culture(例如en-US / he-IL等)作为参数。在我的app.router.ts

export const localeRouter: Routes = [
    {
        path: '',
        redirectTo: 'he-IL',
        pathMatch: 'full'
    },
    { path: 'he-IL', children: ... },
    { path: 'en-US', children: ... }
];
export const routes: ModuleWithProviders = RouterModule.forRoot(localeRouter);

我生成的网址如下所示

  

www.domain.com/he-IL/auctions/1587(希伯来语)

     

www.domain.com/en-US/auctions/1587(英文)

我需要从URL获取此部分(lang-culture,例如en-US)以在ASP.NET MVC端加载该文化的资源。

我试图从我的组件上的ActivatedRoute实例中找到它,但遇到了一些问题。

我发现的一种方法是:

this.route.parent.parent.snapshot.url

但问题是.parent的序列在每个组件的基础上会有所不同,我想要一个适用于所有组件的通用解决方案。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以使用以下方法获取网址上的第一个路径切片:

getLanguageFromLocation(): string {
    const pathSlices = location.pathname.split('/');

    if (pathSlices.length > 1)
        return pathSlices[1];

    if (pathSlices.length)
        return pathSlices[0];
}