У меня есть 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();
}