javascript - Angular 2 - 后备路线不起作用

标签 javascript angular typescript webpack angular2-routing

我有一个用这个 Angular 2 Webpack Starter 构建的 Angular2 项目但我无法让后备路线正常工作。在我的 app.routes.ts 我有:

import { Routes } from '@angular/router';
import { HomeComponent } from './home';
import { DataResolver } from './app.resolver';

export const ROUTES: Routes = [
  {
     path: '',
     component: HomeComponent
  },
  {
     path: 'getstarted', loadChildren: './getstarted#GetStartedModule'
  },

  ...
  {
     path: 'notfound', loadChildren: './notfound#NotFoundModule'
  },
  {
     path: '**', loadChildren: './notfound#NotFoundModule'
  },
];

上面的 not found 路径可以正常工作,但回退路由 (**) 不能正常工作。而不是显示 NotFoundModule 它根本不加载模块,我没有收到任何错误。但是,当我这样做时,它会正确重定向:

  ...
  {
     path: 'notfound', loadChildren: './notfound#NotFoundModule'
  },
  {
    path: '**', redirectTo:'/notfound', pathMatch: 'full'
  },
];

我不想重定向,因为我不想通过重定向将 url 更改为 /notfound。我怎样才能使我的顶级版本正常工作,或者我还能做些什么来使它正常工作?

最佳答案

所以,我刚刚试了一下,似乎你不能使用惰性路由来设置你的后备页面。这应该有效:

export const ROUTES: Routes = [
  {
     path: '',
     component: HomeComponent
  },
  {
     path: 'getstarted', loadChildren: './getstarted#GetStartedModule'
  },

  ...
  {
     path: 'notfound', loadChildren: './notfound#NotFoundModule'
  },
  {
     path: '**', component : NotFoundComponent
  },
];

关于javascript - Angular 2 - 后备路线不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42840310/

相关文章:

javascript - 使内容可编辑部分中的 h2 标签不可删除

Angular Service Worker 未在开发模式下注册

html - 更改 mat-paginator 的 [pageSizeOption] 字体大小和字体系列

sql - Cordova 使用事务将大文件导入数据库

javascript - JS 提升如何在函数中工作?

javascript - 如何在打印布局 html 中设置 img 样式

javascript - 删除 <div> 和 <p> 标签

angular - Ngrx 效果 : Conditionally return action inside switchMap instead of http response

javascript - Observable 确定订阅者功能是否已完成

javascript - 在 Angular 6 中使用 patchValue 时发送数据格式错误