Родительский шаблон Angular `‹router-outlet›` отображает шаблон дважды

У меня есть родительский шаблон, которым делятся его дочерние элементы, и я показываю этот родительский шаблон в app.component.html на основе некоторого условия.

Теперь проблема, с которой я сталкиваюсь, заключается в том, что родительский шаблон отображается дважды, прежде чем будет загружено эталонное изображение дочернего компонента.

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

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

Вот мой код:

home.component.html

<div class="container register">
  <div class="row">
      <div class="col-md-3 register-left">
          <img src="https://image.ibb.co/n7oTvU/logo_white.png" alt=""/>
          <h3>Welcome</h3>
          <p>You are 35 seconds away from earning your own money!</p>
          <input type="submit" name="" value="Login"/><br/>
      </div>
      <div class="col-md-9 register-right">
          <ul class="nav nav-tabs nav-justified" id="myTab" role="tablist">
              <li class="nav-item">
                  <a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">Employee</a>
              </li>
              <li class="nav-item">
                  <a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Hirer</a>
              </li>
              <li class="nav-item">
                  <a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">Hirer</a>
              </li>
          </ul>
           <div class="tab-content" id="myTabContent">
               <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">
                  <h3 class="register-heading">Add your project</h3>
                  <div class="row register-form">
                    <router-outlet></router-outlet>
                  </div>
               </div>
           </div>
      </div>
 </div>
</div>                            

home-routing.module.ts

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { AuthGuard } from '../../../helpers/auth.gaurd';
import { Role } from '../../../data/schema/role';
import { HomeComponent } from './home.component';
import { ListProjectCategoryComponent } from '../project-folder/projectCategory/list-project-category/list-project-category.component';
import { CreateProjectCategoryComponent } from '../project-folder/projectCategory/create-project-category/create-project-category.component';
import { DetailsProjectCategoryComponent } from '../project-folder/projectCategory/details-project-category/details-project-category.component';

const routes: Routes = [{ 
  path: 'admin',
   component: HomeComponent ,
   canActivate: [AuthGuard],
data: { roles: [Role.Admin]},
children: [
{ path: 'projectCategory/list', 
component: ListProjectCategoryComponent
},
{ path: 'projectCategory/create', 
component: CreateProjectCategoryComponent
},
{ path: 'projectCategory/details', 
component: DetailsProjectCategoryComponent
}]  }];

@NgModule({
  imports: [RouterModule.forChild(routes)],
  exports: [RouterModule]
})

export class HomeRoutingModule { }

app.component.ts

<app-web-header></app-web-header>
 <div *ngIf="isAdminComponent"> 
    <app-home ></app-home> 
</div>
<div *ngIf="!isAdminComponent"> 
<app-user-home></app-user-home>
</div>
<app-web-footer></app-web-footer>

Вот

app-routing-module.ts

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

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


comment
Не могли бы вы воспроизвести ошибку в приложении StackBlitz или чем-то подобном?   -  person Andrei Gătej    schedule 16.01.2021


Ответы (1)


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

person Will Alexander    schedule 14.01.2021
comment
при этом возникает эта проблема comp" title="на основе состояния выход маршрутизатора, не меняющий свое содержимое при изменении URL-адреса в приложении comp">stackoverflow.com/questions/65697694/ - person VJain; 14.01.2021