我有NewCategoryComponent,它具有获取详细信息的表单,以及WarningComponent,它将在用户关闭表单时显示。
单击关闭(x)图标时,用户将收到警告消息(Mat Dialog),“ 确定要关闭吗?”。然后,用户应转到上一条路线。
如果我当前的路线是category/101/newCategory
,则应该转到category/101
。我已经实现了this.router.navigate(['../'], { relativeTo: this.activatedRoute });
。
如果我将this.router.navigate(['../'], { relativeTo: this.activatedRoute });
保留在WarningComponent中,它将转到/
(根)位置。
在NewCategoryComponent中,它工作得很好。
NewCategoryComponent
// new-category.component.html
<button mat-icon-button class="cancelBtn" (click)="showWarning()">
<mat-icon>close</mat-icon>
</button>
// new-category.component.ts
showWarning(): void {
this.matDialog.open(WarningComponent);
// going to localhost:4200/category/101
// this.router.navigate(['../'], { relativeTo: this.activatedRoute }); // working
}
警告组件
// warning.component.html
<button mat-raised-button class="wrnBtn stayBtn" (click)="stay()">
<span>Stay</span>
</button>
<button mat-raised-button class="wrnBtn closeBtn" (click)="close()">
<span>Close</span>
</button>
// warning.component.ts
constructor(
public warningDialog: MatDialogRef<WarningComponent>,
private router: Router,
private activatedRoute: ActivatedRoute
) { }
close() {
this.warningDialog.close();
this.router.navigate(['../'], { relativeTo: this.activatedRoute }); // not working properly
}
stay() {
this.warningDialog.close();
}
答案 0 :(得分:0)
如果您要从“ category / 101 / newCategory”转到“ category / 101”路线。然后执行以下操作: this.router.navigate(['/ category / 101']); 假设类别没有父路线。让我知道它是否有效。.