我究竟如何创建一条不会自动导航到其路线的子路线?
我有一个导航组件,导航到我的应用程序中的各个模块。我导航到的一个模块,让我们称之为目录,有自己的子路径来显示特定对象的详细信息。我想导航到目录,而不是目录/细节。只有当我点击目录中的特定对象时,我才能导航到目录/详细信息。
因此,在我的导航组件上,我定义了初始路径。
new Route({ path: "/reporting/catalog/...",
component: ReportCatalogComponent,
name: "Reporting.Catalog" }),
在其模板中,是[routerLink]
。
<a class="navbar-link" [routerLink]="['Reporting.Catalog', 'Default']">Report Catalog</a>
ReportCatalogComponent
内部我定义了子路径
@RouteConfig([
new Route({ path: "/", component: EmptyComponent, name: "Default", useAsDefault: true }),
new Route({ path: "details/", component: ReportDetailsComponent, name: "Details" })
])
我不想拥有默认路径......因为它只是为了避免直接导航到详细信息页面。我还没有选择任何细节,所以我不应该在那里导航。
目前Angular2中是否有一种方法可以让我设置该子路径,但不能立即导航到那里?或者即使我必须按照我的方式定义第二个路径,有没有办法不必创建我分配给路径的EmptyComponent?
答案 0 :(得分:1)
如果你交换组件,我相信你会得到你想要的东西:
new Route({ path: "/reporting/catalog/...", component: EmptyComponent, name: "Reporting.Catalog" }),
@RouteConfig([
new Route({ path: "/", component: ReportCatalogComponent, name: "Default", useAsDefault: true }),
new Route({ path: "details/", component: ReportDetailsComponent, name: "Details" })
])
您可能需要将template: "<router-outlet></router-outlet>"
添加到EmptyComponent
...