У меня есть некоторые проблемы с маршрутами для проекта Angular, в основном с третьим уровнем дочерних маршрутов. Маршруты работают идеально во время навигации в приложении. (routerLink
) и проблема возникает при доступе к URL-адресу через URL-адрес браузера.
Моя версия Angular — 2.4.0
Я тестирую сервер разработки с ng serve
.
Для проекта с заданной структурой
.
├── photos
├── posts
├── users
│ ├── detail
│ │ ├── address
│ │ ├── family
│ │ ├── information
│ │ └── phones
│ ├── friends
│ └── profile
└── videos
Ниже приведен код,
// 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[] = [];
и зарегистрирован как,
@NgModule({
declarations: [
// declarations
],
imports: [
AppRoutes
],
providers: [
appRoutingProviders
],
bootstrap: [AppComponent]
})
export class AppModule { }
Таким образом, приложение хорошо работает с RouterLink.
[routerLink]="['/user', username, 'detail']
но когда я перемещаюсь по браузеру <host>/user/myuser/detail
, возникает исключение
Uncaught (in promise): Error: Cannot find primary outlet to load 'DetailComponent'
Что случилось? Спасибо.
NB: я установил <router-outlet>
и отлично работает на routerLink, и проблема возникает при переходе по полному URL-адресу в браузере.
<router-outlet></router-outlet>
в шаблон корневого компонента? если нет, поместите его в свой шаблонAppComponent
, где будет загружаться html - person Umar Younis   schedule 15.03.2017router-outlet
, один в компоненте приложения, один в пользовательском компоненте и один в подробном компоненте. - person All Іѕ Vаиітy   schedule 15.03.2017