Angular Route Guard CanActivate висит на определенной странице - PullRequest
0 голосов
/ 02 октября 2018

Я создаю приложение Angular 5 с защитой маршрута для страницы T & C.Всякий раз, когда кто-то входит в систему, он должен принять условия и положения, прежде чем продолжить в приложении.Route Guard работает отлично, но есть только одна проблема после принятия Условий и Положений: щелчок на странице файлов cookie не загружается, он показывает значок загрузки, но никогда не попадает туда, и загружает страницу файлов cookie только при нажатии на Условия использованиястраница перваяНиже я покажу маршруты, которые у меня есть для всех страниц, но все остальные страницы загружаются просто отлично.

Во-первых, у меня есть папка "справки", которая содержит страницу с инструкциями и файлами cookie.Ниже приведен файл 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, кроме страницы входа в систему, и ко всем страницам можно получить доступ (после принятия T & C), кроме страницы cookie, которая просто показывает загрузкузначок.Единственный способ получить доступ к странице файлов cookie - это сначала перейти на страницу Условий и положений, а затем перейти на страницу файлов cookie.Я попытался удалить защиту из файла app.routes и добавить его в компонент cookie в help.routes, но это не решает проблему.Любая помощь приветствуется.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...