我在另一个angular2项目“project2”中导入angular2项目“project1”时遇到了一些麻烦。我想当project2运行时将它重定向到我的AppRoutingViewsModule中指定的Login2Component,但实际上是重定向到第一个项目内的路由中指定的LoginComponent。这是我的路由文件以及app.module,我将第一个项目导入第二个项目。
AppRoutingModule project1
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { DashboardComponent } from './dashboard.component';
import { AppAuthGuard } from "./security/app-auth-guard.component";
import { NoAuthComponent } from '../app/layouts/no-auth/no-auth.component';
import { NotFoundComponent } from '../app/layouts/not-found/notfound.component';
import { LoginComponent } from './login.component';
import { HomeComponent } from './home.component';
import { SsvmnComponent } from './ssvmn.component';
const routes: Routes = [
{ path: '', redirectTo: 'login', pathMatch: 'full' },
{ path: 'login', component: LoginComponent },
{ path: 'home', component: HomeComponent,canActivate: [AppAuthGuard],
children: [
{ path: '', redirectTo: 'dashboard', pathMatch: 'full' },
{ path: 'dashboard', component: DashboardComponent },
{ path: 'ssvmn/:comp', component: SsvmnComponent }
]
},
{ path: 'no-auth', component: NoAuthComponent },
{ path: '**', component: NotFoundComponent }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
AppRoutingViewsModule project2
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { Login2Component } from './login.component';
const routes: Routes = [
{ path: '', redirectTo: 'login2', pathMatch: 'full' },
{ path: 'login2', component: Login2Component }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingViewsModule { }
应用模块项目2
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponentsModule } from 'sigma-web';
import { AppRoutingViewsModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { Login2Component } from './login.component';
@NgModule({
declarations: [
AppComponent,
Login2Component
],
imports: [
BrowserModule,
AppComponentsModule,
AppRoutingViewsModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
如果您需要更多信息,请与我们联系。 感谢。
解决方案:
它不会覆盖它。它合并路线,然后选择与路线匹配的第一条路径。所以它基本上忽略了任何看似重复的路径。如果在合并的路径集中有通配符路径,则会忽略通配符路径之后的所有路径,因为路由器将选择通配符路径 致谢:DeborahK
答案 0 :(得分:0)
此代码:
declarations: [
AppComponent,
LoginComponent
],
合并两个组件的路线。所以你有:
{ path: '', redirectTo: 'login', pathMatch: 'full' },
{ path: 'login', component: LoginComponent }
{ path: '', redirectTo: 'login2', pathMatch: 'full' },
{ path: 'login2', component: Login2Component }
由于路由顺序很重要且路由器始终与第一个匹配一起进行,因此空(默认)路由将始终转到登录路径。
如果您可以提供有关您要完成的具体内容的更多信息,我们可能会提供有关如何实现目标的更多信息。
根据您要做的事情,"父母"路线可能有助于区分两组路线。