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

时间:2019-02-02 05:44:56

标签: typescript components observable primeng

使用PrimeNg的动态对话的例子显示了目的地对话如何获得数据和显示。 我可以去通过创建与观测服务将数据传递到对话,但我知道有一些可用的,可以通过传递对话服务(如数据)的参数。 如何将对话检索通过服务传递的数据?

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

4 个答案:

答案 0 :(得分:0)

动态对话框在构造函数中具有传递数据的选项。 例如

  

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

答案 1 :(得分:0)

我得到的数据始终在ngOnInit中未定义(this.config.data =未定义)。这是我的代码:

constructor(public ref: DynamicDialogRef, public config: DynamicDialogConfig) {
}

ngOnInit() {
    console.log(this.config.header);
    this.root = this.config.data.template.root;
}

然后我使用以下方法打开对话框:

       let myData = {
            "template": this.template
        };
        const ref = this.dialogService.open(TreeReportComponent,
            {
                data : myData,
                header: 'Test',
                width: '70%',
                contentStyle: {"max-height": "350px", "overflow": "auto"}
            });

我在Google上找不到任何东西。也许您可以帮助我找到我的错误。预先谢谢你。

答案 2 :(得分:0)

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

providers: [DialogService]

来自我将要传递数据的组件(对话框组件)

答案 3 :(得分:0)

内部父组件:

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() {}
}