首页 > 解决方案 > Angular 8 - 它如何确定启动页面

问题描述

我有一个 Angular 8 应用程序,它在启动时显示登录页面。

如何/什么将其设置为启动页面?只有 1 个路由模块。我到处查看以供参考,但没有任何迹象表明该页面应在启动时显示。

我错过了什么?有任何想法吗?

在此处输入图像描述

这是 app-routing.module.ts 文件:

import {NgModule} from '@angular/core';
import {RouterModule, Routes} from '@angular/router';
import {HomeComponent} from './pages/home/home.component';
import {DetailsComponent} from './pages/details/details.component';
import {AddComponent} from './pages/add/add.component';
import {LoginComponent} from './pages/login/login.component';
import {SignupComponent} from './pages/signup/signup.component';

import {AuthGuard} from './guards/auth.guard';
import {AppGuard} from './guards/app.guard';

const routes: Routes = [
   {path: '', component: HomeComponent, canActivate: [AppGuard]},
   {path: 'details/:city', component: DetailsComponent, canActivate: [AppGuard]},
   {path: 'add', component: AddComponent, canActivate: [AppGuard]},
   {path: 'login', component: LoginComponent, canActivate: [AuthGuard]},
   {path: 'signup', component: SignupComponent , canActivate: [AuthGuard]},
   {path: '**', redirectTo: ''}
];

@NgModule({
 imports: [RouterModule.forRoot(routes)],
 exports: [RouterModule]
})
export class AppRoutingModule {}

标签: angular

解决方案


如果您查看代码,您将获得 Routes 数组,该数组显示将根据 URL 或所采用的导航路径呈现的组件。现在,如果您将看到 canActivate 属性,那么您正在使用两个保护,一个 AppGuard 和另一个 AuthGuard。守卫基本上是为了保护您的某些页面不被直接访问。如果所有守卫都返回 true,则导航发生。例如,当有人在您的网站上购买商品时。他可能应该是登录用户,您将客户重定向到登录屏幕。阅读有关它的更多信息canActivateauthguard

我最初的猜测是查看 AppGuard,因为它位于默认导航的 canActivate 属性中。尽管如此,也要检查 AuthGuard。将让您清楚地了解为什么您的应用程序中有两个警卫以及他们每个人的职责。希望这会有所帮助。


推荐阅读