【发布时间】:2019-11-20 15:13:54
【问题描述】:
首先让我提一下,下面提到的是我所有路线的简化示例。只是不工作的部分。我有一个角度项目(它实际上是 nativescript 角度项目,但我猜问题实际上出在角度)。使用的angular版本是8.2.x。
我关注app-routing.module.ts,它基本上将所有内容重定向到HomeModule:
const routes: Routes = [
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: 'home', loadChildren: () => import('~/app/home/home.module').then((m) => m.HomeModule) }
];
然后是home-routing.module.ts,其中包含以下内容:
const routes: Routes = [
{
path: '',
component: HomeComponent,
children: [
{
path: '',
component: Outlet1Component,
outlet: 'outlet1',
},
{
path: '',
component: Outlet2Component,
outlet: 'outlet2',
},
],
},
];
现在HomeComponent 已成功加载,其中有几个命名的插座,我希望这些插座也加载自己的组件,这些组件在路由器中配置。但是那部分不起作用,我现在不知道如何解决它。
更新
这里有 2 个 Nativescript 游乐场示例:
第一个版本可以正常工作(按角度逻辑)并为插座加载组件。第二个版本不加载插座组件。
还有 nativescript repo issue 供参考。
【问题讨论】:
-
我认为this answer 会有所帮助。也许如果你在
HomeComponent的构造函数中做this.router.navigate([{ outlets: ... }])的事情,它应该可以工作。 -
您能否详细说明您的问题陈述,究竟是什么不起作用。它不会在任何插座或插座之一上加载内容?你在使用
page-router-outlet/router-outlet吗?是什么支撑着您的网点、TabView 或简单的布局?此外,您似乎仅将重定向设置为主组件,您必须在重定向语句中为每个出口设置路由器路径,以便路由器在启动时获取组件。 -
@Manoj 您可以查看我的更新以及其中的所有详细信息。
标签: angular typescript nativescript