javascript - Angular 6 中具有相应组件的子路由

标签 javascript angular html typescript bootstrap-4

我试图理解 Angular 6 中的延迟加载,

这是我的应用程序的树:

─src
 ├───app
 │   ├───components
 │   │   ├───about
 │   │   ├───clients
 │   │   ├───footer
 │   │   ├───how-it-
 │   │   ├───partner
 │   │   ├───project
 │   │   ├───team
 │   │   ├───whatwed
 │   │   └───why-cho
 │   ├───layout
 │   │   └───main-la
 │   └───shared
 ├───assets
 │   ├───charts
 │   ├───css
 │   ├───fonts
 │   ├───icon
 │   └───images
 └───environments

这是应用程序路由模块

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule, Routes } from '@angular/router';
import { MainLayoutComponent } from './layout/main-layout/main-layout.component';
import { AboutComponent } from './components/about/about.component';
import { WhatwedoComponent } from './components/whatwedo/whatwedo.component';
import { ProjectsComponent } from './components/projects/projects.component';
import { FooterComponent } from './components/footer/footer.component';
const routes: Routes = [
  {
    path: 'home',
    component: MainLayoutComponent,
    children: [
      {
        path: '',
        redirectTo: 'home',
        pathMatch: 'full'
      },
      {
        path: 'about',
        component: AboutComponent
      },
      {
        path: 'what',
        component: WhatwedoComponent
      },
      {
        path: 'projects',
        component: ProjectsComponent
      },
      {
        path: 'contacts',
        component: FooterComponent
      }
    ]
  }
];


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

这是应用程序模块

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { NgStickyDirective } from 'ng-sticky';
import { RouterModule } from '@angular/router';
import { AppComponent } from './app.component';
import { MainLayoutComponent } from './layout/main-layout/main-layout.component';
import { AppRoutingModule } from './/app-routing.module';
import { MainNavDirective } from './layout/main-nav.directive';
import { AboutComponent } from './components/about/about.component';
import { WhatwedoComponent } from './components/whatwedo/whatwedo.component';
import { FooterComponent } from './components/footer/footer.component';
import { WhyChooseUsComponent } from './components/why-choose-us/why-choose-us.component';
import { TeamComponent } from './components/team/team.component';
import { ProjectsComponent } from './components/projects/projects.component';
import { ClientsComponent } from './components/clients/clients.component';
import { HowItWorksComponent } from './components/how-it-works/how-it-works.component';
import { PartnersComponent } from './components/partners/partners.component';

@NgModule({
  declarations: [
    AppComponent,
    NgStickyDirective,
    MainLayoutComponent,
    MainNavDirective,
    AboutComponent,
    WhatwedoComponent,
    FooterComponent,
    WhyChooseUsComponent,
    TeamComponent,
    ProjectsComponent,
    ClientsComponent,
    HowItWorksComponent,
    PartnersComponent
  ],
  imports: [
    BrowserModule,
    RouterModule.forRoot([]),
    AppRoutingModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

这是我的应用程序的主要布局 html。

<div class="main-header">
  <nav class="main-nav" ng-sticky [offSet]="0" [addClass]="'main-sticky'" appMainNav #ref="appMainNav">
    <div class="main-nav__logo " ng-sticky [offSet]="0" [addClass]="'main-sticky__logo'">
      <img class="man-nav__logo-green" src="/assets/images/logo-white.png">
    </div>
    <div class="main-nav__toggle">
      <i class="main-nav__bars fa fa-bars" ng-sticky [offSet]="0" [addClass]="'main-bars'"></i>
    </div>
    <ul class="main-nav__list " ng-sticky [addClass]="'main-sticky-link'" [ngClass]="ref.click === true? 'Navbar__ToggleShow' :''">
      <li class="main-nav__item" routerLinkActive="active">
        <a class="main-nav__link" routerLink="/">Home</a>
      </li>
      <li class="main-nav__item" routerLinkActive="active">
        <a class="main-nav__link" routerLink="/about">About us</a>
      </li>
      <li class="main-nav__item" routerLinkActive="active">
        <a class="main-nav__link" routerLink="/what">About us</a>
      </li>
      <li class="main-nav__item" routerLinkActive="active">
        <a class="main-nav__link" routerLink="/projects">About us</a>
      </li>
      <li class="main-nav__item" routerLinkActive="active">
        <a class="main-nav__link" routerLink="/contacts">About us</a>
      </li>

    </ul>
  </nav>

  <div class="main-banner">
    <h2>We are a team of
      <strong>experts</strong>.</h2>
    <p>Founded in 2014, the BDTS Poland specializes in IT personnel outsourcing for the areas of banking, insurance, telecommunications,
      high-tech, pharmacy, logistics and many others</p>
    <a href="http://en.bdts.pl/about-us/" class="main-banner__green-button main-banner__arrow-right">Read more
      <i></i>
    </a>
    <a href="#" class="main-banner__arrow-down"></a>
  </div>
</div>

<div class="majeni-app">
  <app-whatwedo></app-whatwedo>
  <app-about></app-about>
  <app-projects></app-projects>
  <app-why-choose-us></app-why-choose-us>
  <app-team></app-team>
  <app-footer></app-footer>
</div>

<router-outlet></router-outlet>

和app.components.html中

<router-outlet></router-outlet>

不幸的是,当我运行 ngserve 时,我的应用程序显示白屏,没有任何错误,

我的代码做错了什么?任何建议或帮助都会有帮助

最佳答案

您的应用没有任何默认路由,因此 Angular 不知道在启动时加载哪个组件。

尝试添加顶级规则,例如:

{
   path: '',
   pathMatch: 'full',
   redirectTo: 'home'
}

关于javascript - Angular 6 中具有相应组件的子路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52029371/

相关文章:

javascript - 如何在 Rails 中包含并组合所有 Controller 特定的 JavaScript?

javascript - 非常简单的javascript来删除文本框中的值

javascript - 为什么此代码在 Android 上需要视口(viewport)元标记?

javascript - Angular : Transfer a single list item from array list using service to another service?

angular - 如何在 Angular Material 4 中居中对齐卡片?

php - 包含数据库值和用户输入的表

c# - 我如何将 ActionLink "Add Pictures"放在导航栏的中间?

html - 同位素过滤自定义样式问题

Javascript 检测屏幕分辨率,更改 css,相应地裁剪图像

node.js - 你如何阻止 Chrome 总是重定向到 https(不需要)?