我的路线:
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;
}
}
为什么默认情况下不起作用,我该如何实现?