angular - 在 Angular 中,什么是 'pathmatch: full',它有什么作用?

标签 angular typescript angular-router

在这里它使用完整的路径匹配,当我删除这个路径匹配时,它甚至不会加载应用程序或运行项目

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpModule } from '@angular/http';
import { RouterModule } from '@angular/router';

import { AppComponent }  from './app.component';
import { WelcomeComponent } from './home/welcome.component';

/* Feature Modules */
import { ProductModule } from './products/product.module';

@NgModule({
  imports: [
    BrowserModule,
    HttpModule,
    RouterModule.forRoot([
      { path: 'welcome', component: WelcomeComponent },
      { path: '', redirectTo: 'welcome', pathMatch: 'full' },
      { path: '**', redirectTo: 'welcome', pathMatch: 'full' }
    ]),
    ProductModule
  ],
  declarations: [
    AppComponent,
    WelcomeComponent
  ],
  bootstrap: [ AppComponent ]
})
export class AppModule { }

最佳答案

RouterModule.forRoot([
      { path: 'welcome', component: WelcomeComponent },
      { path: '', redirectTo: 'welcome', pathMatch: 'full' },
      { path: '**', component: 'pageNotFoundComponent' }
    ])

案例 1 pathMatch:'full': 在这种情况下,当应用程序在 localhost:4200(或某些服务器)上启动时,默认页面将是欢迎屏幕,因为 url 将是 https://localhost:4200/

如果 https://localhost:4200/gibberish 这将重定向到 pageNotFound 屏幕,因为 path:'**' 通配符

案例 2 pathMatch:'prefix':

如果路由有 { path: '', redirectTo: 'welcome', pathMatch: 'prefix' },现在这将永远不会到达通配符路由,因为每个 url 都会匹配 path :'' 已定义。

关于angular - 在 Angular 中,什么是 'pathmatch: full',它有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42992212/

相关文章:

angular - 任务 :processDebugManifest 的 ionic 3 构建失败

javascript - Angular react 形式 : Dynamic Select dropdown value not binding

angular - 类型上不存在属性

javascript - 如何在 Angular 5 组件中有条件地加载 templateUrl html 文件

angular - 当 Angular 路由器的子级处于事件状态时,使 Angular 路由器的父级不处于事件状态

Angular 获取路由路径 - 未解析的 url

Angular 仅在导航到不同组件时检测路由更改

angular - 如果连接不处于 'Connected' 状态,则无法发送数据

javascript - 单元测试 Angular 5 应用程序的模拟文件列表

javascript - 找不到命名空间 'ng'