如何获取“角度材质”对话框的值并将其发送给父级?
在它们关闭对话框之后,我知道如何获取数据。 只是好奇如何在对话框仍处于打开状态时,或者特别是在有人按下对话框中的按钮时获取数据。
public openPropertySearchDialog(): void {
const propertySearchDialogRef = this.propertySearchDialog.open(PropertyGridDialogComponent,
{
width: '1500px',
height: '950px',
data: this.propertyList,
hasBackdrop: false
});
propertySearchDialogRef.afterClosed().subscribe(result => {
console.log('propertyResult', result);
});
}
更新:
这将订阅数据。现在,我只需要知道在Dialog组件内按下Button时的数据即可。考虑为按钮按下事件添加另一个订阅,寻找简洁的方法,而不是添加两个订阅。
propertySearchDialogRef .componentInstance.propertyOutput.subscribe((data: any) => {
console.log('test',data);
});
https://material.angular.io/components/dialog/api
许多在线资源是当窗口关闭时,寻找“打开”并按下一个按钮(不会关闭对话框)
How to pass data to afterClosed() in Angular Material Dialog in Angular 6
答案 0 :(得分:0)
在弹出组件上,您可以使用Output事件发射器。
onAdd = new EventEmitter();
constructor() {
}
onButtonClicked() {
this.onAdd.emit('test');
}
在父组件内部,
openDialog() {
const ref = this._dialog.open(InnerComponent);
const sub = ref.componentInstance.onAdd.subscribe((data) => {
console.log(data);
});
dialogRef.afterClosed().subscribe(() => {
sub.unsubscribe();
});
}
这里您正在订阅onAdd事件。
仅当您单击按钮上的按钮时,才会发出事件
(click)
事件,致电onButtonClicked()
–