Не удается заставить работать роутер для детей - PullRequest
0 голосов
/ 07 октября 2019

Мне нужно предложение, как сделать router-outlet для моего приложения. У меня есть приложение root и два разных проекта внутри этого приложения.

ROOT APP
|
|---app1
|   |
|   |-app1.module
|   |-app1.routing
|   |-app1.component
|
|---app2
|   |-app2.module
|   |-app2.routing
|   |-app2.component
|
|
rootApp.module
rootApp.routing
rootApp.component

Если я запусту app1, они пройдут через rootApp <router-outlet></router-outlet>

Я хочу получить gt на этом пути,

APP1 -> app1.component (<router-outlet name="app1"></router-outlet>) -> rootApp (<router-outlet></router-outlet>)

также

APP2 -> app2.component (<router-outlet name="app2"></router-outlet>) -> rootApp (<router-outlet></router-outlet>)

Вот мой rootApp rootApp-routing.module

const routes: Routes = [
{ path: "app1", loadChildren: "../../projects/app1/src/app/app.module#app1" },
{ path: "app2", loadChildren: "../../projects/app2/src/app/app.module#app2" },
{ path: "**", redirectTo: "/app1/one" }
];

@NgModule({
imports: [RouterModule.forRoot(routes), app1.forRoot(), 
app2.forRoot(),

export: [RouterModule]})

А вот мойapp1-route.module

const routes: Routes = [
{ path: "app1/home", component: HomeComponent, outlet: "app1", canActivate: [AppAuthGuard] 
},
{ path: "app1", redirectTo: "app1/home", outlet: "app1", canActivate: 
[AppAuthGuard] }
];

То же самое для app2-route.module

const routes: Routes = [
{ path: "app2/home", component: HomeComponent, outlet: "app2", canActivate: [AppAuthGuard] 
},
{ path: "app2", redirectTo: "app2/home", outlet: "app2", canActivate: 
[AppAuthGuard] }
];

В моем

Я всегда получаю ошибку

main.ts: 13 Ошибка: недопустимая конфигурация маршрута 'app1': безкомпонентный маршрут без дочерних элементов или loadChildren не может иметь именованный выходной набор

1 Ответ

0 голосов
/ 07 октября 2019

Попробуйте это в app1-route.module

   const routes: Routes = [{ 
path: "home", component: HomeComponent, outlet:"app1", canActivate: [AppAuthGuard] 

},
{ path: "", redirectTo: "home", outlet: "app1", canActivate: 
[AppAuthGuard] }
];
...