Ich habe einige Probleme mit Routen für ein Angular-Projekt, hauptsächlich mit der dritten Ebene von Child-Routen. Die Routen funktionieren perfekt während der Navigation in der App.() und das Problem entstehen beim Zugriff auf die URL über die Browser-URL.Angular 2 Routen funktionieren nicht während der Navigation durch den Browser URL
Meine Angular-Version ist 2.4.0
Ich teste auf Dev-Server mit ng serve
.
Für ein Projekt mit der angegebenen Struktur,
.
├── photos
├── posts
├── users
│ ├── detail
│ │ ├── address
│ │ ├── family
│ │ ├── information
│ │ └── phones
│ ├── friends
│ └── profile
└── videos
Im Folgenden ist der Code,
// user routes
export const userRoutes : Routes = [
{
path: 'detail',
component: DetailComponent
},
{
path: 'friends',
component: FriendsComponent
},
{
path: 'profile',
component: ProfileComponent
}
]
//app routes
const appRoutes: Routes = [
{
path: '',
component: HomeComponent
},
{
path: 'photos',
component: PhotosComponent
},
{
path: 'posts',
component: PostsComponent
},
{
path: 'users',
component: UserListComponent
},
{
path: 'user/:username',
component: UserComponent,
children: userRoutes
},
{
path: 'videos',
component: VideosComponent
}
]
export const AppRoutes = RouterModule.forRoot(appRoutes);
export const appRoutingProviders: any[] = [];
und ist registriert als,
@NgModule({
declarations: [
// declarations
],
imports: [
AppRoutes
],
providers: [
appRoutingProviders
],
bootstrap: [AppComponent]
})
export class AppModule { }
So ist die Anwendung funktioniert gut mit der RouterLink
[routerLink]="['/user', username, 'detail']
aber wenn ich den Browser <host>/user/myuser/detail
es navigieren erhöhen Ausnahme
Uncaught (in promise): Error: Cannot find primary outlet to load 'DetailComponent'
Was ist falsch? Vielen Dank.
NB: Ich habe <router-outlet>
Setup und arbeitet perfekt auf Router und das Problem entsteht, wenn die navigate durch vollständige URL in Browser.
hinzugefügt haben Sie den ' Router-Ausgang>' in Ihnen root-Komponentenvorlage? wenn nicht in Ihre 'AppComponent' Vorlage, wo die html geladen wird –
Ich habe mehrere' Router-outlet's eine auf App-Komponente, eine auf Benutzer-Komponente und eine auf Detail-Komponente – Marty