Перенаправление на родительский маршрут вместо дочернего при обновлении страницы - PullRequest
0 голосов
/ 03 марта 2020
{
        path: '',
        component: componentA,
        children: [
            {
                path: '',
                component: componentB,
                pathMatch: 'full'
            },
            {
                path: 'upload',
                component: UploadComponent,
                children: [
                    {
                        path: 'step_1',
                        component: StepOneComponent,
                        pathMatch: 'full'
                    },
                    {
                        path: 'step_2',
                        component: StepTwoComponent,
                        pathMatch: 'full'
                    },
                    ...

Текущее поведение:

В ngOnInit() из UploadComponent Я делаю это:

ngOnInit() {
        this.router.navigateTo(['step_1']);
}

Если вы находитесь на StepTwoComponent и обновите страницу sh, которую вы перенаправляете на StepOneComponent.

Я предполагаю, что это происходит потому, что сначала загружается UploadComponent, который перенаправляет на StepOneComponent вместо текущего.

UploadComponent.html состоит из:

<div>
       <!-- some content -->
</div>

<div>
       <!-- some content -->

       <router-outlet></router-outlet>

       <!-- some content -->
</div>

Вопрос:

Как сделать ссылку sh, чтобы не перенаправлять на StepOneComponent, а на текущий

1 Ответ

0 голосов
/ 03 марта 2020

Зарегистрируйте маршруты '' (не полный) и '**' (маршруты с подстановочными знаками) в дочерних элементах, чтобы они переходили к step_1:



{
        path: '',
        component: componentA,
        children: [
            {
                path: '',
                component: componentB,
                pathMatch: 'full'
            },
            {
                path: 'upload',
                component: UploadComponent,
                children: [
                    {
                        path: 'step_1',
                        component: StepOneComponent,
                        pathMatch: 'full'
                    },
                    {
                        path: 'step_2',
                        component: StepTwoComponent,
                        pathMatch: 'full'
                    },
                    // put these 2 new routes at the end
                    {
                     path: '',
                     redirectTo: 'step_1',
                     pathMatch: 'full',
                    },
                    {
                     path: '**',
                     redirectTo: 'step_1',
                     pathMatch: 'full',
                    }....

В ngOnInit из UploadComponent , удалите логику c, чтобы перейти к 'step_1'.

Теперь, когда вы обновите sh при step_2, вы должны остаться на step_2.

...