Компонент Angular 5 не удален на дочернем маршруте изменен - PullRequest
0 голосов
/ 28 мая 2018

Эй, у меня проблема с моим Angular 5 App.Я создал простое приложение с маршрутизацией некоторых компонентов.Маршрутизация выглядит следующим образом:

{ path: '', component: SetupComponent, pathMatch: 'full' }, // here we can add a landingpage
{ path: 'setup', component: SetupComponent },
{
    path: 'lan/:reference', component: LanComponent, // use special layout here which is defined in LanComponent
    children: [
        { path: '', redirectTo: 'dashboard', pathMatch: 'full' },
        { path: 'dashboard', component: DashboardComponent },
        { path: 'attendees', component: AttendeesComponent },
        { path: 'games', component: GamesComponent },
        { path: 'royal-beefs', component: RoyalBeefsComponent },
    ]
},
{path: '**', component: SetupComponent}

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

enter image description here

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

index.html

<body class="m-page--fluid m--skin- m-content--skin-light2 m-header--fixed m-header--fixed-mobile m-aside-left--enabled m-aside-left--skin-dark m-aside-left--offcanvas m-footer--push m-aside--offcanvas-default">
<div class="m-grid m-grid--hor m-grid--root m-page">
  <app-root></app-root> <!-- app.component.ts -->
</div>
</body>

app.component.html

<router-outlet></router-outlet>

lan.component.html

<app-header-nav></app-header-nav>
<!-- begin::Body -->
<div class="m-grid__item m-grid__item--fluid m-grid m-body">
  <div class="m-grid__item m-grid__item--fluid m-wrapper">
    <router-outlet></router-outlet>
  </div>
</div>
<!-- end:: Body -->
<app-footer></app-footer>

в games.component.html и других есть только контент.Ссылки будут генерироваться с routerLink, как:

[routerLink]="['/lan', params.reference, 'dashboard']"
[routerLink]="['/lan', params.reference, 'attendees']"

Подсказка: я разработал это приложение первым без какого-либо сложного дизайна.Все работает.Теперь я хотел интегрировать Metronic Dashboard Theme, и у меня возникла эта проблема.Если у кого-нибудь есть решение, пожалуйста, напишите его:)

ОБНОВЛЕНИЕ: Вот несколько ссылок на тему:

https://keenthemes.com/metronic/documentation.html

https://keenthemes.com/metronic/preview/?demo=demo12

1 Ответ

0 голосов
/ 28 мая 2018

я нашел ответ!в моих файлах HTML у меня была директива unwraptag.Шаблон нуждался в этом.Я удалил его, и все работает нормально.В файле директивы селектор был помечен как ошибка eslint.Это был селектор: '[appunwraptag]',

...