首页 > 解决方案 > 读取下一条路线的自定义数据,Angular 11

问题描述

我有一个像这样的路由器对象

 const routes: Routes = [
    { path: '', component: LoginComponent },
    {
      path: 'admin-dashboard',
      loadChildren: () => import('@sample/timesheetlibs/admin-dashboard').then((m) => m.TimesheetlibsAdminDashboardModule),
      canActivate: [UserManagementGuardService],
      data: {
        permission: 'canRouteHome'
      }
    },
    {
      path: 'user-management',
      loadChildren: () => import('@sample/timesheetlibs/user-management').then((m) => m.TimesheetlibsUserManagementModule),
      canActivate: [UserManagementGuardService],
      data: {
        permission: 'canRouteUserManagement'
      }
    },      
  ];

现在我想阅读下一条路线的自定义数据,例如,我在上admin-dashboard,我想去user-management,所以在中UserManagementGuardService,我想阅读data.permission之前的导航,但不知道如何阅读,请帮忙。

标签: angular

解决方案


UserManagementGuardService可以通过以下方式访问数据:

@Injectable()
class UserManagementGuardService implements CanActivate {
  constructor(...) {}

  canActivate(
    route: ActivatedRouteSnapshot
  ): Observable<boolean|UrlTree>|Promise<boolean|UrlTree>|boolean|UrlTree {
    const permission = route.data?.permission;
    ...
    return ...
  }
}

推荐阅读