如何为现有的模式对话框创建路由?我希望能够输入模式URL,当我按Enter键时,应该显示模式对话框。同样,选择“后退”按钮也应将用户带到上一条路线。
我已尝试为new和create的模式对话框进行以下创建路由:
当用户单击按钮时,该按钮会将路线更改为: `
onPostEdit(){
this.router.navigate([`${this.post.postID}/edit`], {relativeTo: this.route})
//this.postItDialogService.openPostItDialogEdit(this.dialog, this.post);
}
` 然后,我的路由设置如下:
`
{ path: 'posts/new', component: PostItDialogContainerComponent },
{ path: 'posts/:id/edit', component: PostItDialogContainerComponent},
`
PostItDialogContainerComponent是这样的:
`
ngOnInit() {
this.postItDialog.openPostItDialog(this.dialog);
}
`
openPostItDialog是这样的:
`
public openPostItDialog(dialog: MatDialog): void {
const dialogRef = dialog.open(PostItDialog, {
width: '350px'
});
console.log("Dialog was open");
dialogRef.afterClosed().subscribe(() => {
console.log("The dialog was closed");
})
`
然后,当显示对话框时,我要检查参数,并根据参数显示新表单或现有表单(如果是编辑路径)
`
ngOnInit() {
this.route.params
.subscribe(
(params) => {
this.postID = +params['id'];
this.editMode = params['id'] != null;
this.initForm();
}
);
}
`
我已经在这里待了一天。我想不明白。通过手动更改URL,然后在对话框关闭时清除URL,我有一种骇人听闻的方法。这仅适用于一个用例,适用于新的表单,但是当我想再次使用它来编辑帖子时也是如此。我在做什么错了?