我正在为“条款和条件”页面构建带有路由防护的Angular 5应用。每当有人登录时,他们必须接受条款和条件,然后才能继续使用该应用程序。 Route Guard可以完美运行,但是在接受条款和条件后只有一个问题,单击cookie页面不会加载,它会显示加载图标,但永远不会到达那里,并且仅在单击条款和条件时才会加载cookie页面。第一页。我将在下面显示所有页面的路由,但其他所有页面都可以正常加载。
首先,我有一个“帮助”文件夹,其中包含“条款和条件”页面和“ Cookies”页面。以下可能是help.routes.ts文件。
export class HelpRoutesContainer extends RoutesContainer {
public cookiePolicy = buildRoute(HelpRoutes.cookiePolicy)
.titleLang('help.cookie-policy-page.title')
.component( CookiePolicyPageComponent );
public termsAndConditions = buildRoute(HelpRoutes.termsAndConditions)
.titleLang('help.terms-and-conditions-page.title')
.component( TermsAndConditionsPageComponent );
public help = buildRoute(HelpRoutes.help)
.default()
.titleLang('help.help-page.title')
.component( HelpPageComponent );}
以下代码是app.routes.ts文件。
public login = buildRoute(MainRoutes.login)
.titleLang('login-page.title')
.anonymous()
.component(LoginPageComponent);
public reports = buildRoute(MainRoutes.reports)
.requireFeature('reports')
.secure()
.requireRole(REPORT_ROLES.ROUTE)
.childModule(ReportsModule)
.guard(TermsAndConditionsRouteGaurd);
public auditing = buildRoute(MainRoutes.auditing)
.secure()
.requireFeature('auditing')
.requireRole(AUDITING_ROLES.ROUTE)
.childModule(AuditingModule)
.guard(TermsAndConditionsRouteGaurd);
public admin = buildRoute(MainRoutes.admin)
.publishToMenu('topMenu', { languageKey: 'admin.menu-title', sortOrder: 4 })
.secure()
.requireFeature('admin')
.requireRole(ADMIN_ROLES.ROUTE)
.childModule(AdminModule)
.guard(TermsAndConditionsRouteGaurd);
public tax = buildRoute(MainRoutes.tax)
.secure()
.requireRole(TAX_ROLES.INTERNAL)
.childModule(TaxModule)
.guard(TermsAndConditionsRouteGaurd);
public help = buildRoute(MainRoutes.help)
.childModule(HelpModule)
.guard(TermsAndConditionsRouteGaurd);
如您所见,除登录页面外,所有路径都具有TermsAndConditionsRouteGaurd防护,并且除cookie页面(仅显示一个加载图标)外,所有页面都可以访问(在接受了条款和条件之后)。访问cookie页面的唯一方法是先导航到“条款和条件”页面,然后再导航到cookie页面。我已经尝试从app.routes文件中删除防护,并将其添加到help.routes中的cookie组件中,但是它不能解决问题。 任何帮助表示赞赏。 谢谢。