Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Загрузить child компонент в родительский router-outlet (https://javascript.ru/forum/angular/74081-zagruzit-child-komponent-v-roditelskijj-router-outlet.html)

sniffysko 12.06.2018 00:12

Загрузить child компонент в родительский router-outlet
 
Имеется ли возможность грузить содержимое компонента, который объявлен как child в router-outlet родителя?

Т.е. есть примерно такое объявление:
const routes: Routes = [
	{path: 'admin', component: ParentComponent,  children: [
		{path: 'path1', component: Component1},
		{path: 'path2', component: Component2},
		{path: 'path3', component: Component3}
	]}
];

По дефолту дочерние Component1, Component2, Component3 должны грузиться в router-outlet, который должен быть в шаблоне компонента ParentComponent.
Я знаком только с таким вариантом, чтобы не пользовать родительский аутлет: объявить полный путь к компонентам и не вгонять их в children. Вот так:
const routes: Routes = [
	{path: 'admin', component: ParentComponent},
	{path: 'admin/path1', component: Component1},
	{path: 'admin/path2', component: Component2},
	{path: 'admin/path3', component: Component3}
];


Можно ли сделать так, чтобы компоненты были в children, но грузились в router-outlet родителя?

destus 12.06.2018 07:06

В первом абзаце расписываете как все работает "по дефолту", а чуть ниже спрашиваете как то же самое сделать. Ну вот так собственно и сделать.

sniffysko 12.06.2018 09:19

Мне бы сохранить древовидную структуру роутов. Т.к. роуты будут служить источником данных для другой службы.

destus 13.06.2018 11:38

sniffysko,
const routes: Routes = [
	{path: 'admin', component: ParentComponent,  children: [
		{path: 'path1', component: Component1},
		{path: 'path2', component: Component2},
		{path: 'path3', component: Component3}
	]}
];

c <router-outlet> в шаблоне ParentComponent - cамый правильный и надежный способ.


Часовой пояс GMT +3, время: 18:33.