#angular #routes #angular-ui-router #routerlink
#angular #маршруты #angular-ui-router #routerlink
Вопрос:
Я хочу переходить с одной страницы на другую, от одного компонента к другому:
const routes: Routes = [
{
path: '',
component: UploadPageComponent,
children: [
{
path: 'frameworks',
component: FrameworksSceneComponent,
pathMatch: 'full',
children: [
{//doesn't work
path: 'questionnaire',
component: QuestionnaireComponent,
},
],
},
{
path: 'documents',
component: DocumentsSceneComponent,
pathMatch: 'full',
},
{//works
path: 'questionnaire',
component: QuestionnaireComponent,
pathMatch: 'full',
},
],
},
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class UploadRoutingModule {
}
Мой шаблон (FrameworksSceneComponent):
<a [routerLink]="['questionnaire']">aaaaaaaaaaaaaaaaaaaa</a>
но это работает (FrameworksSceneComponent):
<a [routerLink]="['/private/upload/questionnaire']">bbbbbbbbbbbbbbbbbbbbbbbbbbbbb</a>
Что не так с моими вложенными ссылками? Почему после нажатия aaaaaaaaaaaaaaaaaa
я перенаправляюсь на свою главную страницу. С другой стороны, ссылка bbbbbbbbbbbbbbbb
работает, но в этом случае ссылка не является дочерней ссылкой.
Комментарии:
1. <a [routerLink]=»[‘questionnaire’]»> ааааааааааааааааааа</a> вы вызываете это по / framwork route ?
2. Да, я вызываю ааааааааааааааа в компоненте FrameworksSceneComponent (в шаблоне)… Я отредактировал свой пост, добавив FrameworksSceneComponent в качестве компонента, из которого я хочу перейти к QuestionnaireComponent
Ответ №1:
То, как вы реализовали вложенный маршрут, angular ищет a <router-outlet>
в вашем FrameworksSceneComponent.html
. попробуйте реализовать, как показано ниже. не уверен, почему он переходит на главную страницу.
routes: Routes = [
{
path: "",
children: [
{
path: "",
component: UploadPageComponent
},
{
path: "frameworks",
children: [
{
path: "",
component: FrameworksSceneComponent,
pathMatch: "full"
},
{
//should work
path: "questionnaire",
component: QuestionnaireComponent
}
]
},
{
path: "documents",
component: DocumentsSceneComponent,
pathMatch: "full"
},
{
//works
path: "questionnaire",
component: QuestionnaireComponent,
pathMatch: "full"
}
]
}
];
Комментарии:
1. Хм, у меня есть структура меню, подобная upload -> затем 2 вложенные вкладки / 2 подменю: Документы и фреймворки. И в рамках Framework я хотел бы иметь дополнительную страницу анкеты со ссылкой upload / frameworks / questionnaire