основной компонент отображается дважды на выходе маршрутизатора после реализации модулей ленивой загрузки - Angular 8

Вот ожидаемый интерфейс:

введите здесь описание изображения

Но реальный пользовательский интерфейс рендерится

введите здесь описание изображения

Вот приложение-routing.module.ts

const routes: Routes=[
{path: '',component: HomeComponent},
{path:'counter',
loadChildren:() => import('./counter/counter.module').then((m)=> m.CounterModule)
},
{path:'posts', component: PostslistComponent,

loadChildren:() => import('./posts/posts.module').then((m)=>m.PostsModule),

}
];

========================================================

Post.module.ts

const routes:Routes=[
{path:'', component: PostslistComponent,
children:[
{path:'update/:id', component:UpdatepostComponent,
   
},
{path:'add',component:AddpostComponent, 
},
  
]
}
];

================================================== === app.component.html (у которого есть основной выход маршрутизатора)

<div class="container">
<app-header></app-header>
<div class="row">
<div class="col-md-12">
<router-outlet></router-outlet>
  
</div>
</div>
</div>

================================================== ======= postslist.component.html Здесь у меня есть еще один выход роутера для добавления/обновления/удаления поста

<div class="col-md-4">
<router-outlet></router-outlet>
     
</div>

Проблема здесь, в вышеуказанном выходе маршрутизатора тот же компонент снова отображается, кто-нибудь, пожалуйста, помогите мне решить?


person Nagaraj Varanasi    schedule 01.04.2021    source источник


Ответы (2)


Это потому, что вы импортировали PostListComponent в родительскую маршрутизацию. Просто удалите его, а также удалите импорт PostModule из декоратора родительского модуля @ngModule.

Просто это должно быть

{
  path:'posts',
  loadChildren:() => import('./posts/posts.module').then((m)=>m.PostsModule),
}

Раз ваш код работал, значит, вы импортировали PostModule в родительский модуль, который необходимо удалить.

person Liu Zhang    schedule 01.04.2021
comment
Огромное спасибо, теперь все работает как положено. Оценил вашу помощь! - person Nagaraj Varanasi; 01.04.2021
comment
Пожалуйста :) - person Liu Zhang; 01.04.2021

Используйте Named router-outlet, это помогает различать несколько router-outlet. Вы можете обратиться по ссылке ниже для подробных примеров.

https://onehungrymind.com/named-router-outlets-in-angular-2/

person Vikrant Naik    schedule 01.04.2021