我想使用两个单独的路由配置和两个router-outlet 来实现嵌套路由.然而,我遇到了一个问题,我无法在我的独立组件中提供路由,该组件加载在router-outlet 本身中.
我希望在不(如果可能的话)将所有路由路径添加到我的应用程序路由的情况下实现什么: Structure I would like to achieve个
我try 为我的组件(两个组件,见上图)提供路由,该组件加载在router-outlet 本身中:
import { CommonModule } from '@angular/common';
import { Component } from '@angular/core';
import { RouterModule, Routes, provideRouter } from '@angular/router';
export const twoRoutes: Routes = [
{
path: 'three',
loadComponent: () => import('./three.component').then(a => a.ThreeComponent),
},
{
path: 'four',
loadComponent: () => import('./four.component').then(a => a.FourComponent),
},
];
@Component({
selector: 'app-two',
standalone: true,
imports: [CommonModule, RouterModule],
providers: [provideRouter(twoRoutes)],
template: `
<div>Hello Component TWO</div>
<router-outlet></router-outlet>
`,
styles: ``,
})
export class TwoComponent {}
错误: using provideRouter in a stand-alone component个
我希望有一种方法可以在我的独立组件中定义我的嵌套路由,而不是必须将所有这些路由路径添加到我的应用程序路由和子程序中.
UPDATE:
我用loadChildren
算出了以下结果,但我个人并不喜欢这样,因为这需要我更新应用程序的路由,让它知道嵌套的路由:
import { Routes } from '@angular/router';
export const routes: Routes = [
{
path: 'one',
loadComponent: () => import('./one.component').then(a => a.OneComponent),
},
{
path: 'two',
loadComponent: () => import('./two.component').then(a => a.TwoComponent),
loadChildren: () => import('./two.component').then(t => t.twoRoutes),
},
];