我在一个组件中有几个对话框。它们看起来几乎都相同,所以我想创建一个函数来调用带有不同消息的不同对话框。这是我已经想出的: 当前对话框调用:
deActivate(user: UsersList) {
const dialog = this.dialog.open(DeactivateUserDialogComponent, {
height: '20%',
width: '50%',
data: {
dialogMessage: user
}
});
dialog.componentInstance.onChange.subscribe(() => this.getUsers());
}
所以我的想法是制作一个通用对话框:
openDialog(dialogName, message) {
const dialog = this.dialog.open(dialogName, {
data: {
dialogMessage: message
}
});
dialog.componentInstance.onChange.subscribe(() => {
this.getUsers(), dialog.close();
});
}
并调用方法:
openDialog(userDeleted: UsersList) {
this.openDialog(DeactivateUserDialogComponent, user);
}
但是问题出在dialog.componentInstance
"it cannot exist on type {}"
上。
我需要componentInstance
来在父组件中进行更新(这是它不刷新的唯一工作方式)。那么,我该怎么办才能出厂而又不用担心刷新?
答案 0 :(得分:1)
好吧,这并不困难:) 实际上,我不需要componentInstance。相反,我需要在对话框组件中关闭对话框,并在父组件中关闭afterClose。效果很好