Angular 2:隐藏路径组件

时间:2017-09-06 13:19:34

标签: apache angular

我有一个围绕在Apache上运行的角度2构建的网站。不同的“组”使用相同的网站(和相同的API)。假设有两组:蜜蜂和黄蜂。我的角度路由文件如下所示:

{
        path: '',
        redirectTo: 'groupe/1',
        pathMatch: 'full'
    },
    {
        path: 'groupe',
        children: [
            {
                path: ':groupe',
                children: [
                    {
                        path: '',
                        component: HomePage,
                    },
...

要访问群组,我只需转到http://myws.com/group/1(蜜蜂)和http://myws.com/group/2(蜜蜂)。然后,每个组的页面基本相同(具有不同的内容,从API加载),例如:http://myws.com/group/1/page/21

现在是棘手的部分。首先,我想从简化的显式网址访问每个“群组”:例如http://myws.com/bees。我可以通过将以下代码添加到路由器来完成此操作:

{
    path: 'bees',
    redirectTo: 'groupe/1',
    pathMatch: 'prefix'
},

问题是,路由将URL更改回/ group / 1。 有没有办法让/ bees永久化,隐藏/ group / 1?

现在,我还希望从特定域访问我的蜜蜂群,例如http://www.bees.com。页面应该呈现为http://www.bees.com/page/21 有角度或Apache的方法吗?

1 个答案:

答案 0 :(得分:0)

嗯,在Angular方面(意味着.com之后的所有内容),你可以这样做

export const bugRoutes: Routes = [
    { path: 'bees', canActivate: [MyBeeGuard], children: [
        { path: '', component: BeeHomeComponent },
        { path: '**', component: BeeHomeComponent }
    ]},
    { path: 'wasps', canActivate: [MyWaspGuard], children: [
        { path: '', component: WaspHomeComponent},
        { path: '**', component: WaspHomeComponent}
    ]},
    { path: '**', component: ChoseBugHomeComponent }
];

这样,无论路线如何,您的用户都将被重定向到任何错误回家。如果他根本没有输入任何路线,他将被重定向到一个“允许”他选择选择哪个错误的组件