Angular route guard:如何使用下一个可用路线?

时间:2017-07-28 23:08:11

标签: angular angular2-routing angular-routing

我的路线:

export const routes: Routes = [
    {
        path: 'specified-module/:moduleName',
        component: SpecifiedModuleComponent,
        canActivate: [ModuleGuard]
    },
    // + routes for another modules
    {
        path: ':moduleType/:moduleName',
        component: ModuleComponent
    },
];

第二条路线应适用于所有无法激活或没有自己组件的模块。不幸的是,当某个模块有自己的路由且ModuleGuard返回false时,第二条路线不再匹配该路线。

假设:如果specified-module/example返回ModuleComponent,我希望路由canActivate: [ModuleGuard]调用false

此问题需求的ModuleGuard示例:

@Injectable()
export class ModuleGuard implements CanActivate {
    public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
        return false;
    }
}

为什么默认情况下不起作用,我该如何实现?

0 个答案:

没有答案