angular 5 从辅助子路由到父路由的路由给出匹配错误
angular 5 routing from auxiliary children route to parent gives match error
我已经为 'reports' 添加了第二个路由器出口,这个路由器出口位于 "layout" 报告组件中。所有三个子路由都链接到 'sub menu' 组件中,当我返回 'start route' (分配列表)时出现我的问题,这就是我得到
的地方
Error: Cannot match any routes. URL Segment: 'SE_556354-3353/%2Freports'
Error
如何返回 "root"/parent(作业列表)?基本上,我怎样才能在这些链接之间跳转?
这里是相关代码。
app.module
const routes = [
{ path: ':orgNoParam/organizational-unit/:unitIdParam/employments', component: EmployeeComponent },
{
path: ':orgNoParam/reports', component: ReportsComponent, children: [
{ path: '', component: AssignmentListComponent, outlet: 'content' },
{ path: 'managers', component: AssignmentCompactManagersComponent, outlet: 'content' },
{ path: 'employments', component: AssignmentCompactEmployeesComponent, outlet: 'content' }
]
}
];
reportsComponent(又名 "the layout")
<div id="assignment">
<assignment-submenu></assignment-submenu>
<div>
<!--angular error messages-->
<error-message *ngIf="errorList?.length" [errorList]="errorList"></error-message>
</div>
<router-outlet name="content"></router-outlet>
Submenu.html(这是链接所在的位置)
<ul class="sub-menu" *ngIf="tempList && tempList.length">
<li *ngFor="let translation of tempList">
<ng-container *ngIf="translation.link=='reports'">
<a class="new-style" (click)="goToRoot()">{{ translation.name }}</a>
</ng-container>
<ng-container *ngIf="translation.link=='managers' || translation.link=='employments'">
<a class="new-style" [routerLink]="[{ outlets: { content: [translation.link] } }]">{{ translation.name }}</a>
</ng-container>
</li>
Submenu.ts
goToRoot() {
this.router.navigate([this.orgNoParam, '/reports']);
}
我通过将 "root"-child 的路由器链接设置为 'routerLink="{{translation.link}}"',然后设置 "root"-child 的路径(它有路径 '')来解决它到 '../reports' 瞧。
我已经为 'reports' 添加了第二个路由器出口,这个路由器出口位于 "layout" 报告组件中。所有三个子路由都链接到 'sub menu' 组件中,当我返回 'start route' (分配列表)时出现我的问题,这就是我得到
的地方Error: Cannot match any routes. URL Segment: 'SE_556354-3353/%2Freports' Error
如何返回 "root"/parent(作业列表)?基本上,我怎样才能在这些链接之间跳转?
这里是相关代码。
app.module
const routes = [
{ path: ':orgNoParam/organizational-unit/:unitIdParam/employments', component: EmployeeComponent },
{
path: ':orgNoParam/reports', component: ReportsComponent, children: [
{ path: '', component: AssignmentListComponent, outlet: 'content' },
{ path: 'managers', component: AssignmentCompactManagersComponent, outlet: 'content' },
{ path: 'employments', component: AssignmentCompactEmployeesComponent, outlet: 'content' }
]
}
];
reportsComponent(又名 "the layout")
<div id="assignment">
<assignment-submenu></assignment-submenu>
<div>
<!--angular error messages-->
<error-message *ngIf="errorList?.length" [errorList]="errorList"></error-message>
</div>
<router-outlet name="content"></router-outlet>
Submenu.html(这是链接所在的位置)
<ul class="sub-menu" *ngIf="tempList && tempList.length">
<li *ngFor="let translation of tempList">
<ng-container *ngIf="translation.link=='reports'">
<a class="new-style" (click)="goToRoot()">{{ translation.name }}</a>
</ng-container>
<ng-container *ngIf="translation.link=='managers' || translation.link=='employments'">
<a class="new-style" [routerLink]="[{ outlets: { content: [translation.link] } }]">{{ translation.name }}</a>
</ng-container>
</li>
Submenu.ts
goToRoot() {
this.router.navigate([this.orgNoParam, '/reports']);
}
我通过将 "root"-child 的路由器链接设置为 'routerLink="{{translation.link}}"',然后设置 "root"-child 的路径(它有路径 '')来解决它到 '../reports' 瞧。