Я немного озадачен тем, как там все должно работать.Я пытаюсь следовать различным учебным пособиям с несколькими розетками, но в большинстве случаев результат таков:
ОШИБКА Ошибка: Uncaught (в обещании): Ошибка: не удается сопоставить ни один маршрут.Сегмент URL: 'apath'
У меня много вопросов:
1) Как должны вести себя объявления forChild , особенно при объявлении того же компонентас разными маршрутами?-> Например, каждый раз, когда вы генерируете новую страницу с помощью CLI, создается новый page.module.ts, а также app.routing.module.ts обновляется с маршрутом вашего нового компонента в стиле LzyLoaded.Но в новом модуле также есть маршрут, подобный следующему:
const routes: Routes = [
{
path: '',
component: SortPopoverPage
}
];
@NgModule({
imports: [
CommonModule,
FormsModule,
IonicModule,
RouterModule.forChild(routes)
],
declarations: [SortPopoverPage]
})
export class SortPopoverPageModule {}
По моему мнению, этот маршрут будет объединен с другими маршрутами, объявленными в app.routing.module, и никогда не будет достигнутпоскольку пустой путь уже перенаправлен на дом.Почему этот маршрут создается CLI?
2) Синтаксис вспомогательных маршрутов : я видел в официальном руководстве https://angular.io/guide/router синтаксис, подобный / path (outlet:путь) но я также видел в других уроках / путь / (выход: путь) https://www.joshmorony.com/creating-a-tabs-layout-with-angular-routing-and-ionic-4/
Какой из них лучше?
3)Почему мы даже записываем пункт назначения в объявлении маршрута, когда вы должны указать его в URL?Что произойдет, если вы попытаетесь загрузить в другую розетку путь, объявленный с другой розеткой?
{
path: 'filter',
outlet: 'popover',
component: FilterPopoverPage
}
и
<ion-item href="/home(popover:test/filter)">test</ion-item>
4) Если быть более конкретным: я пытаюсьзагружать компонент в выделенную розетку при нажатии на ссылку:
home.html:
<ion-content>
...
<ion-item href="/home(popover:filter)">test</ion-item>
...
<ion-router-outlet name="popover"></ion-router-outlet>
</ion-content>
app.routing.module:
const routes: Routes = [
{path: 'home', component: HomePage},
{path: 'filter', outlet: 'popover', component: FilterPopoverPage},
{path: '', redirectTo: 'home', pathMatch: 'full'},
];
Когда я нажимаюна кнопке теста ничего не происходит, я думаю, что страница перезагружается, но в консоли нет ошибок.Если я использую путь / home / (popover: filter), я получаю сообщение об ошибке:
Ошибка: ошибка (в обещании): ошибка: невозможно сопоставить ни один маршрут.Сегмент URL: «home»
Когда путь «home» четко определен ... не так ли?
Спасибо за вашу помощь.