gpt4 book ai didi

具有多个命名 socket 的延迟加载模块上的 Angular2 路由

转载 作者:太空狗 更新时间:2023-10-29 17:33:04 24 4
gpt4 key购买 nike

我在 Angular2 中遇到了路由问题。

  1. 我的模块是延迟加载的(但到目前为止基本的“loadChildren”方法没有问题)
  2. 正在加载模块本身(在开发工具的网络选项卡中看到)

我的问题:

请参阅下面的路由代码。第一个版本工作正常。已找到路由,并且在我创建指向 的 routerLink 时未抛出任何错误。

但是,为什么我的第一个摘录有效,而第二个摘录无效???我不想创建一个伪路径“测试”只是为了让它工作。第二个示例是获取此错误消息。

[...]Cannot match any routes. URL Segment: 'mypath'[...]

工作路由:

children: export const routes: Routes = [
{
path: '',
component: ParentSplitViewComponent,
children: [
{
path: '',
redirectTo: 'test'
},
{
path: 'test',
component: SplitViewComponent,
children: [
{
path: '',
redirectTo: 'list'
},
{
path: 'list',
component: MyListComponent,
outlet: 'left'
},
{
path: ':id',
component: MyDetailComponent,
outlet: 'right'
}
]
}
]
}
];

路由不工作:

children: export const routes: Routes = [
{
path: '',
component: ParentSplitViewComponent,
children: [
{
path: '',
component: SplitViewComponent,
children: [
{
path: '',
redirectTo: 'list'
},
{
path: 'list',
component: MyListComponent,
outlet: 'left'
},
{
path: ':id',
component: MyDetailComponent,
outlet: 'right'
}
]
}
]
}
];

请不要依赖文件命名等。我不得不重命名路径等 - 从这个 Angular 来看一切正常。它只是关于路由。

App.routing.ts

{
path: 'mypath',
loadChildren: 'app/modules/myModule/my.module#MyModule'
},

用于理解结构的延迟加载模块的较大摘录:

import [...]    


@Component({
selector: 'parent-split-view-layout-container',
template: `
<h1>Parent</h1>

<router-outlet></router-outlet>
`
});
export class ParentSplitViewComponent {}



@Component({
selector: 'split-view-layout-container',
template: `
<h1>Vertical Split View</h1>

<div id="left">
<router-outlet name="left"></router-outlet>
</div>

<div id="right">
<router-outlet name="right"></router-outlet>
</div>
`
});
export class SplitViewComponent {}




/* Routing Definition */
export const routes: Routes = [
{
path: '',
component: ParentSplitViewComponent,
children: [
{
path: '',
redirectTo: 'test'
},
{
path: 'test',
component: SplitViewComponent,
children: [
{
path: '',
redirectTo: 'list'
},
{
path: 'list',
component: MyListComponent,
outlet: 'left'
},
{
path: ':id',
component: MyDetailComponent,
outlet: 'right'
}
]
}
]
}
];

export const MyRouting: ModuleWithProviders = RouterModule.forChild(routes);

Angular2 版本:

"@angular/common": "~2.4.5",
"@angular/compiler": "~2.4.5",
"@angular/core": "~2.4.5",
"@angular/forms": "~2.4.5",
"@angular/http": "~2.4.5",
"@angular/material": "^2.0.0-beta.1",
"@angular/platform-browser": "~2.4.5",
"@angular/platform-browser-dynamic": "~2.4.5",
"@angular/router": "~3.4.5",

最佳答案

这是一个已知错误。
我一个月前报告过https://github.com/angular/angular/issues/13807
它已关闭,因为它是以下内容的副本:https://github.com/angular/angular/issues/10981

我也需要它,但由于该问题自 2016 年 8 月 26 日起打开,并且“vsavkin 于 2016 年 11 月 16 日删除了他们的分配”,我认为我们不会很快看到修复.

与我可以使用辅助路线完成的工作相比,我最终得到了一些非常糟糕的东西,但工作必须跟上。我希望我能够做出贡献来帮助那个,但我不是......

编辑:(2018 年 6 月 13 日)
看起来像 fix今天已经合并了!

关于具有多个命名 socket 的延迟加载模块上的 Angular2 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42022382/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com