Primeng - 对话服务将数据传递给对话组件

dir*_*0lf 5 components observable typescript primeng

使用 PrimeNg 的动态对话示例展示了目标对话如何获取数据并显示。我可以通过创建一个带有 observable 的服务来将数据传递给对话,但我知道对话服务有一些可用的参数(如数据)可以传递。对话如何检索通过服务传递的数据?

https://www.primefaces.org/primeng/#/dynamicdialog https://github.com/primefaces/primeng/blob/master/src/app/components/dynamicdialog/dynamicdialog-config.ts https://github. com/primefaces/primeng/blob/master/src/app/components/dynamicdialog/dialogservice.ts

Bal*_*ahu 7

父组件内部:

this.dynamicDialogRef = this.dialogService.open(EmployeeDialogComponent, {
    header: 'View Employee Details for - ' + this.employee.name,
    width: '90%',
    contentStyle: {"min-height": "800px", "overflow": "auto"},
    baseZIndex: 10000,
    data: {employee: this.employee}
});
Run Code Online (Sandbox Code Playgroud)

对话框组件内部:

export class EmployeeDialogComponent implements OnInit {
constructor(public ref: DynamicDialogRef, public config: DynamicDialogConfig) { 
     console.log("Data: " + JSON.stringify(config.data.employee));
}
ngOnInit() {}
}
Run Code Online (Sandbox Code Playgroud)


dir*_*0lf 2

动态对话框在构造函数中有一个选项来传递数据。例子,

const ref = this.dialogService.open(MyComponent, {data : myData});

更新

您应该在构造函数中注入 DynamicDialogService ,然后您可以访问在对话框中传递的数据

代码在这里:

constructor( private dialogService: DynamicDialogService) {}
Run Code Online (Sandbox Code Playgroud)

然后您可以访问并查看您传递的所有数据,如下所示:

console.log(this.dialogSerive.data)
Run Code Online (Sandbox Code Playgroud)