Причина использования вложенного маршрута для меня заключается в динамической обработке значка и кнопки «Назад» для каждой страницы. У меня есть абстрактный маршрут, потому что, когда я нажимаю кнопку «Назад», параметры маршрута исчезают, и я помещаю абстрактный путь, чтобы сохранить идентификатор и параметр типа анкеты в url.my abstract путь Анкета.
const routes: Routes = [
{
path: '',
component: LayoutComponent,
children:[
{ path: 'Home', component: HomeComponent,data:{icon:'fa-home'} },
{ path: 'QuestionaireList', component: QuestionaireListComponent,data:{icon:'fa-list-ul',previousState:'/Home'} },
{ path: 'ModifyMetaContent/:metaContentId/:title', component: ModifyMetaContentComponent,data:{icon:'fa-database',previousState:'/MetaContentList'}}
{
path: 'Questionaire/:id',
children:[
{ path: 'MetaContentList', component: MetaContentListComponent,data:{icon:'fa-database',previousState:'/QuestionaireList'}}
]},
{
path: 'Questionaire/:questionnaireType',
children:
[
{ path: 'AddQuestionnaire', component: CreateQuestionnaireComponent,data:{icon:'fa-plus',previousState:'/QuestionaireList'}},
]},
{
path: 'Questionaire/:questionnaireType/:id',
children:[
{ path: 'UpdateQuestionnaire', component: EditComponent,data:{icon:'fa-pencil',previousState:'/QuestionaireList'} },
{ path: 'QuestionList', component: QuestionListComponent,data:{icon:'fa-pencil',previousState:'/QuestionaireList'} },
{ path: 'ImportQuestion', component: ImportQuestionComponent,data:{icon:'fa-plus',previousState:'/QuestionaireList'} },
]} ,
]},
];
MetaContentList.Component.html
<a class="ui labeled positive icon small button" [routerLink]="['/ModifyMetaContent','',questionnaireTitle]">
<i class="plus icon"></i>
new metaContent
</a>
я сохраняю предыдущий URL-адрес в snapshot.data.previousState
, но когда я нажимаю на ModifyMetaContent
, я перехожу к
локальный хост: 4200/ModifyMetaContent/...
и когда я нажимаю кнопку «Назад», id
и questionnairetype
исчезают из URL-адреса. Когда я нажимаю ModifyMetaContent, я ожидал перейти к:
localhost: 4200/Опросник/b8b55b42-f39f-4359-93d0-0260ddf3827f/MetaContentList/ModifyMetaContent/...
и когда я нажимаю кнопку «Назад», я ожидал перейти к
.../Questionaire/b8b55b42-f39f-4359-93d0-0260ddf3827f/MetaContentList/, но URL установлен на localhost:4200/MetaContentList
и произошла эта ошибка:
Не удается сопоставить ни одного маршрута. Сегмент URL: «MetaContentList»
Я обрабатываю этот случай с помощью вложенных состояний angularjs ui-router. Есть ли какое-либо решение этой проблемы в маршрутизаторе angular2+?