Угловое перенаправление на параметр в ленивом загруженном модуле - PullRequest
0 голосов
/ 17 марта 2019

У меня есть несколько ленивых загруженных маршрутов:

const routes: Routes = [
    {
        path: ':lang',
        loadChildren: './components/home/home.module#HomeModule',
        // redirectTo: "en"
    },
    {
        path: ':id/customers',
        loadChildren: './components/customers/customers.module#CustomersModule'
    },
    {
        path: 'products',
        loadChildren: './components/products/products.module#ProductsModule'
    }
];

Когда я открываю страницу с таким URL-адресом: http://localhost:4200/en все работает нормально. Но пользователь не знает, как добавить параметр en в URL, поэтому страница не загружается без параметра. Итак, я должен перенаправить его на /en. Но когда я использую redirectTo: "en", я получаю следующие ошибки:

Error: Invalid configuration of route ':lang': redirectTo and loadChildren cannot be used together

Я нашел что-то об этой ошибке, но это не относится к моему делу. Есть идеи?

Ответы [ 2 ]

3 голосов
/ 17 марта 2019

Настройка redirectTo на маршруте :lang означает: если пользователь находится на этом маршруте, он должен быть перенаправлен на /en.Это не то, что вы хотите.Вы хотите перенаправить пользователя на /en, когда путь является корневым путем.Поэтому вам нужно добавить пустой путь и перенаправить оттуда:

{
    path: '',
    redirectTo: '/en',
    pathMatch: 'full'
}
0 голосов
/ 17 марта 2019

Во-первых, в вашем маршруте есть конфликт между: lang и: id.

Можете ли вы попробовать:

theObjectOfYourIds/:id/customers

и

languages/:lang

И дляваша проблема,

У вас не может быть перенаправления с loaChildren.

Если вы хотите перейти к 'en', выполните стратегию внутри ваших компонентов (например, app.component.ts).

...