angular - 如何在 Angular 7 中为模式对话框创建路由?
问题描述
如何为现有的模式对话框创建路由?我希望能够输入模态 URL,当我按下回车键时,应该会显示模态对话框。此外,选择后退按钮应将用户带到上一条路线。
我已经为新建和创建的模式对话框尝试了以下创建路由:
当用户点击一个按钮时,该按钮将路由更改为:`
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,我有一个 hacky 方法。这仅适用于一个用例,一个新的表单,但是当我想重新使用它来编辑帖子时。我究竟做错了什么?
解决方案
推荐阅读
- javascript - 如何通过执行切片用地图重写推送?
- reactjs - 在类组件中反应 useEffect 等效项
- deep-learning - 是否可以在 FPGA 上训练 YOLO - 对象检测模型?
- javascript - next() 在 Express 4 上不起作用,错误 [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
- docker - launch ElasticSearch in Docker Plesk
- django - Django filter many to many list of objects that contains all the items of a list
- html - 如何通过使 div(及其内容)更小来防止文本中断?
- curl - unexpectedly website returns redirection to itself
- python - Where to get the raw html code in dash/layout/html to print local pdf after executing dash app?
- statistical-test - What statistical test should I use?