angular - 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 {}
解决方案
如果您查看代码,您将获得 Routes 数组,该数组显示将根据 URL 或所采用的导航路径呈现的组件。现在,如果您将看到 canActivate 属性,那么您正在使用两个保护,一个 AppGuard 和另一个 AuthGuard。守卫基本上是为了保护您的某些页面不被直接访问。如果所有守卫都返回 true,则导航发生。例如,当有人在您的网站上购买商品时。他可能应该是登录用户,您将客户重定向到登录屏幕。阅读有关它的更多信息canActivate和authguard。
我最初的猜测是查看 AppGuard,因为它位于默认导航的 canActivate 属性中。尽管如此,也要检查 AuthGuard。将让您清楚地了解为什么您的应用程序中有两个警卫以及他们每个人的职责。希望这会有所帮助。
推荐阅读
- css - 居中第一个标题,使第二个标题从第一个标题开始的地方开始
- pandas - 如何过滤熊猫数据框的缺失值?
- r - 如何用 X 列中的相应值替换数据框中的所有值?
- javascript - 仅 iPhone 的 React 输入文本组件中不接受撇号
- php - 添加 woocommerce 产品时的 Ajax 请求
- flutter - 如何仅在 Flutter 中的特定页面上更改状态栏颜色
- python - 获取 QMessageBox addButton 函数的按下按钮的值
- angular - 为什么 app.component.html 无法识别 server-element,server-element 的内容不会显示在浏览器中?
- java - 在没有 Java Mail API 或任何第三方 API 的情况下用 Java 编写 SMTP 客户端
- matlab - 如何在 Matlab 中删除不间断的前导空格?