В AngularJ, использующих библиотеку ui-router, можно определить несколько именованных представлений для одного состояния (url) и в них загрузить несколько компонентов.
Есть ли способ добиться того же, используяAngularRouter?
В AngularJS это выглядело бы примерно так:
$stateProvider.state('layout', {
url: '/layout',
views: {
'nav': {
template: '<nav-bar></nav-bar>'
},
'body': {
template: '<master-detail></master-detail>',
},
abstract: true
}
});
$stateProvider.state('layout.index', {
url: '',
views: {
'master@layout': {
template: '<default-master></default-master>'
},
'detail@layout': {
template: '<default-detail></default-detail>'
}
}
});
$stateProvider.state('layout.index.alternative', {
url: '',
views: {
'master@layout': {
template: '<alternate-master></alertnate-master>'
},
'detail@layout': {
template: '<alternate-detail></alternate-detail>'
}
}
});
<!-- main -->
<div ui-view="nav"></div>
<div ui-view="body"></div>
<!-- master-detail -->
<div ui-view="master"></div>
<div ui-view="detail"><div>
Я пытался повторить то же самое в angular с именованными выходами маршрутизатора, но я не уверен, возможно ли это вообщечтобы сделать это.
Маршруты в угловых выглядят следующим образом.
const routes: Routes = [{
path: 'layout',
component: NavLayoutComponent,
children: [{
path: '',
pathMatch: 'full',
children: [{
path: 'parent',
outlet: 'nav',
component: NavigationComponent
},
{
path: 'parent',
outlet: 'body',
component: MasterDetailBodyComponent,
children: [{
path: '',
outlet: 'master',
pathMatch: 'full',
component: DefaultMasterComponent
},
{
path: '',
outlet: 'detail',
pathMatch: 'full',
component: DefaultDetailComponent
},
{
path: 'alt',
outlet: 'master',
component: AlternativeMasterComponent
},
{
path: 'alt',
outlet: 'detail',
component: AlternativeDetailComponent
}
]
}
]
},
]
},
{
path: '',
redirectTo: 'layout',
pathMatch: 'full'
}
];
С этим я могу перейти к выходам по умолчанию, но я не могу идти дальше вниз по иерархии.
Моя попытка сделать это может быть найдена здесь .
Это правильный путь?Есть ли способ добиться того же поведения, что и у ui-router с использованием углового роутера?