Я использую ngx-admin в качестве панели управления администратора, и я хочу построить все свое приложение вокруг нее, а это означает, что я просто добавлю нужные мне страницы в эту панель.
Поэтому я хотел добавить домашнюю страницу, на которую пользователи сначала будут переходить при посещении веб-сайта, но по какой-то причине, когда я это делаю, приложение продолжает загружаться.
У меня есть страница входа в систему, которая перенаправляет пользователя в зависимости от его свойства роли, если это 'ADMIN', тогда он может получить доступ к панели инструментов ngx-admin, а если нет, то он может перейти на домашнюю страницу, но только если он сначала перейдет на страницу входа, потому что Я не добавлял метод canActivate в маршрут домашней страницы.
Вот модуль маршрутизации приложений:
import { ExtraOptions, RouterModule, Routes } from '@angular/router';
import { NgModule } from '@angular/core';
import {
NbAuthComponent,
NbLoginComponent,
NbLogoutComponent,
NbRegisterComponent,
NbRequestPasswordComponent,
NbResetPasswordComponent,
} from '@nebular/auth';
import { AuthGuard } from './auth-guard.service';
import { HomepageComponent } from './homepage/homepage.component';
const routes: Routes = [
{ path: 'home', component: HomepageComponent },
{ path: 'users', loadChildren: 'app/pages/pages.module#PagesModule', canActivate: [AuthGuard] },
{
path: 'auth',
component: NbAuthComponent,
children: [
{
path: '',
component: NbLoginComponent,
},
{
path: 'login',
component: NbLoginComponent,
},
{
path: 'register',
component: NbRegisterComponent,
},
{
path: 'logout',
component: NbLogoutComponent,
},
{
path: 'request-password',
component: NbRequestPasswordComponent,
},
{
path: 'reset-password',
component: NbResetPasswordComponent,
},
],
},
{ path: '**', pathMatch: 'full', redirectTo: 'home' },
];
const config: ExtraOptions = {
useHash: true,
};
@NgModule({
imports: [RouterModule.forRoot(routes, config)],
exports: [RouterModule],
})
export class AppRoutingModule {}