#angular #angular-material #angular-routing #angular-router #angular-template
#angular #angular-материал #angular-маршрутизация #angular-router #angular-template
Вопрос:
В настоящее время я работаю над переходом от основного к подробному представлению с дочерними маршрутами, и я не уверен, что делаю это правильно.
Я создал свой собственный модуль и свои компоненты в нем. Модуль имеет свой собственный модуль маршрутизатора, в котором настраиваются дочерние маршруты. Как здесь:
const routes: Routes = [
{
path: '',
component: ParentComponent,
children: [
{
path: 'details',
component: DetailsComponent
}
]
}
];
В этом списке (25% от ширины области просмотра) Я хотел бы щелкнуть по элементу, чтобы рядом с ним отображался подробный вид (75% области просмотра):
<div class="list">
<mat-list role="list">
<mat-list-item role="listitem" routerLink='details'>
<div class="list-entry">
<p>Lorem Ipsum</p>
</div>
</mat-list-item>
</mat-list>
</div>
Таким образом, я разместил свой дополнительный выход маршрутизатора в родительском компоненте:
<div class="main-wrapper">
<div class="header">
<div class="title">
<h4>Title</h4>
</div>
<filter-component></filter-component>
</div>
<div class="content">
<my-list-component></my-list-component>
<router-outlet></router-outlet> // Details should be loaded here
</div>
</div>
Мой компонент details выглядит следующим образом (детали должны закрываться, когда я нажимаю на значок):
<div class="wrapper">
<i class="custom-icon-class" routerLink='my-list'></i>
<h5 class="headline">Lorem Ipsum</h5>
</div>
Мой путь должен выглядеть так:
Показывать только список:
localhost:3000/my-app/my-list
Показать сведения о выбранном элементе (возможно, с идентификатором?):
localhost:3000/my-app/my-list/details
И когда я нажимаю на X в подробном представлении, он должен исчезнуть, чтобы я снова попал на следующий путь:
localhost:300/my-app/my-list
Ответ №1:
Выглядит хорошо. Одно предложение, в компоненте details, вместо routerLink='my-list'
того, чтобы вы должны сделать routerLink="../"
.
Комментарии:
1. Я пробовал, но он просто добавляет my-list в конец моего пути, например: localhost:3000/my-app/my-list/details/my-list . Но мне нужно: localhost:3000/my-app / my-list/
2.
routerLink="../"
Добавляется ли/my-list
к URL?3. Какой URL-адрес загружает родительский компонент?
4. Добавляет ли routerLink=»../» /my-list к URL-адресу -> YES . Родительский URL-адрес /mylist . Я хочу вернуться к этому маршруту.
5. Этого не должно быть.
../
предполагается, что вы подниметесь на уровень.