typescript Primeng -向对话组件传递数据的对话服务

lqfhib0f  于 2023-01-06  发布在  TypeScript
关注(0)|答案(4)|浏览(124)

使用PrimeNg的动态对话框示例说明了目标对话框如何获取数据并显示。我可以创建一个带有可观察对象的服务来将数据传递给对话框,但我知道对话框服务中有一些参数(比如数据)可以传递。对话框如何检索通过服务传递的数据?
https://www.primefaces.org/primeng/#/dynamicdialog 网站

gk7wooem

gk7wooem1#

在父组件内部:

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}
});

内部对话框组件:

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

pdsfdshx2#

我也有同样的问题。我删除了:

providers: [DialogService]

从将要传递数据的组件(对话框组件)

nfs0ujit

nfs0ujit3#

动态对话框在构造函数中有一个传递数据的选项。例如,
const ref = this.dialogService.open(MyComponent, {data : myData});

    • 更新**

应该在构造函数上注入DynamicDialogService,然后就可以访问在对话框上传递的数据
代码在这里:

constructor( private dialogService: DynamicDialogService) {}

然后你就可以访问和查看你传递的所有数据了,就像这样:

console.log(this.dialogSerive.data)
3j86kqsm

3j86kqsm4#

谢谢尼基塔,这对我也有效!
第二个提示:不要忘记在NgModule中声明提供程序:

import { DialogService, DynamicDialogModule } from 'primeng/dynamicdialog';

@NgModule({
  providers: [
      DialogService
  ]
})

相关问题