Ich habe einige interessante Situation während der Entwicklung von Anwendung mit Angular 4.1.1
getroffen. Ich habe immer Routing in einem Modul erklärt und ich mache es in alle Module.Application Routing überschreibt Module Routing
Zum Beispiel new-cars.routing.module.ts
:
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { NewCarsComponent} from './new-cars.component';
import { NewCarsResolver } from './new-cars.resolver';
@NgModule({
imports: [
RouterModule.forChild([
{
path: 'cars/:id',
component: NewCarsComponent,
resolve: {
card: NewCarsResolver
}
}
])
],
exports: [RouterModule]
})
export class NewCarsRoutingModule { }
Dann habe ich gelesen, diese article zu umleiten zu Komponente "404 Not Found", wenn Benutzereingaben nicht URL-Adresse exisiting. Und ich erklärte, diesen Weg in app-routing.module.ts
:
export const routes: Routes = [
{ path: '**', component: PageNotFoundComponent }
];
und jetzt alle Seiten zeigen Page not found
.
app.module.ts:
import ...;
import { NewCarsModule } from './new-cars/new-cars.module';
import ...;
@NgModule({
imports: [
RouterModule,
BrowserModule,
AppRoutingModule,
HomeModule,
SearchModule,
CoreModule,
NewsCarsModule,
],
declarations: [
AppComponent,
PageNotFoundComponent
],
bootstrap: [AppComponent]
})
export class AppModule { }
Meine Fragen ist Ist es möglich, { path: '**', component: PageNotFoundComponent }
nur an einem Ort zu schreiben, nicht in allen Komponenten?
dies geschieht in der Regel, wenn Ihr Router-Module in der falschen Reihenfolge eingeführt werden; Ihre Wildcard-Route (404) muss die * letzte * Route in der Routenliste sein, nachdem alle anderen Routen importiert wurden. – Claies
@Claies Ich erkläre Routen nicht in 'const appRoutes: Routes = [...]', aber ich erkläre Routen in ** modules **. Anwendungsrouten überschreiben also Modulrouten. Es sieht so aus, als ob 'Angular' die Datei' app-routing.module.ts' für das Routing sieht und sich dann zu Modulen bewegt, in denen sich beispielsweise 'new-cars.routing.module.ts' befindet. – StepUp
Können Sie AppModule hinzufügen? – yurzui