Когда я запускаю угловое приложение, оно перенаправляет на страницу localhost: 4200 / events, где у меня есть данные для отображения.Теперь я реализовал службу защиты, как beforelogin & afterlogin, чтобы позволить пользователю получить доступ к определенной странице до и после входа в систему.
Пример: если пользователь не вошел в систему, и если пользователь нажимает URL «localhost: 4200 / special» напрямую, я хочу перенаправить его на страницу localhost: 4200 / events, но вместо этого он перенаправляет на страницу localhost: 4200,Я попытался отобразить данные на этом локальном узле: страница 4200, но данные не отображаются.
Вместо
path:'', redirectTo: 'events',
Я также попытался:
path:'', component: EventComponent
app-routing.module.ts
import { BeforeLoginGuard } from './guards/before-login.guard';
import { AfterLoginGuard } from './guards/after-login.guard';
const routes: Routes = [
{
path:'',
redirectTo: 'events',
pathMatch: 'full'
},
{
path: 'login',
component: LoginComponent,
canActivate: [BeforeLoginGuard]
},
{
path: 'signup',
component: SignupComponent,
canActivate: [BeforeLoginGuard]
}
{
path: 'events',
component: EventsComponent
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
after-login.guard
export class AfterLoginGuard implements CanActivate {
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
return this._tokenService.loggedIn();
}
constructor(private _tokenService: TokenService) { }
}
events.component
export class EventsComponent implements OnInit {
events = [];
constructor(private _eventService: EventService) { }
ngOnInit() {
this._eventService.getEvents()
.subscribe(
res => this.events = res,
err => console.log(err)
);
}
}