Угловой маршрутизатор.Проблема с именованным выходом во вложенных маршрутах - PullRequest
0 голосов
/ 28 сентября 2018

Я использую приложение, сгенерированное с помощью jHipster , и пытаюсь заставить систему навигации работать так:

/ --> Site root (main.component). Redirects to /home.
  /home  (home.component)
  /admin (adm.component)
    /groups   (group.component)
    /contacts (contact.component)
  /questions (question.component)

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

При настройке маршрутов с помощью Angular Router я указываю admin в качестве родителя для компонента с именем AdminComponent, а панель инструментов указывается в качестве дочернего выхода с именем navbar,используя класс NavbarComponent.

Моя проблема - ошибка отображения контактов в консоли.Группы не имеют этой проблемы и отображаются правильно.

Я получаю ошибку для контактов: "Неверная конфигурация маршрута 'admin /': у безкомпонентного маршрута не может быть заданного имени выхода" .

Отладка ошибки, я вижу это:

Error debugging

Если я удаляю розетку navbar, я могу отображать контактыно без панели инструментов.Для краткости я включаю только самую важную часть моего кода.Спасибо за вашу помощь.

contact.route.ts

export const contactRoute: Routes = [{
    path: 'admin',
    component: AdminComponent,
    children: [
        {
            path: '',
            component: NavbarComponent,
            outlet: 'navbar'
        },{
            path: 'contact',
            component: contactComponent,
            data: {
                authorities: ['ROLE_USER'],
                pageTitle: 'contactsApp.contact.home.title'
            },
            canActivate: [UserRouteAccessService]
        }, {
            path: 'contact/:id',
            component: contactDetailComponent,
            data: {
                authorities: ['ROLE_USER'],
                pageTitle: 'contactsApp.contact.home.title'
            },
            canActivate: [UserRouteAccessService]
        }
    ]
}];

app.route.ts

import { Route, Routes } from '@angular/router';
import { JhiMainComponent } from './layouts';

export const mainRoute: Routes = [
    {
        path: '',
        pathMatch: 'full',
        redirectTo: 'home'
    },
    {
        path: '',
        component: JhiMainComponent
    }
];

main.component.html

<router-outlet></router-outlet>
<router-outlet name="popup"></router-outlet>

home.component.html

<div>
    <router-outlet name="navbar"></router-outlet>
</div>
<div class="container-fluid">
    <jhi-footer></jhi-footer>
</div>

adm.component.html

<div>
    <router-outlet name="navbar"></router-outlet>
</div>
<div class="container-fluid">
    <div class="card jh-card">
        <router-outlet></router-outlet>
    </div>
    <jhi-footer></jhi-footer>
</div>

adm.component.ts

@Component( {
    selector: 'admin',
    templateUrl: './adm.component.html'
} )
export class AdminComponent  {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...