2017-03-27 28 views
1

我想将数据传递给对话框,但它应该完成的方式(根据互联网上找到的几个示例,如Using MdDialogConfig data on Angular 2)不起作用。将数据传递给MdDialog不再有效

我收到以下错误:

Property 'data' does not exist on type 'MdDialogConfig' 

当我看MdDialogConfig这个属性确实不存在的(再)

的代码,我使用的,可以发现作为公认的例子回答上面的话题,但它不起作用。示例代码是:

const config = new MdDialogConfig(); 

config.data = [ 
    // for example: 
    'value 1', 
    'value 2' 
]; 

const dialogRef = this.dialog.open(DialogComponent, config); 

扫描剩下的代码,我没有看到其他方式直接传递数据。 我可以回到使用单独的服务将数据从组件传递到对话框,但这远非理想。

有没有正确的方法将数据传递给对话框?

我使用的版本2.0.0-beta.1

+0

我看到有一个更新的版本可用,似乎有数据propery。在这个时候检查出来 –

+0

是的,这是诀窍。不幸的是,包含主题的api也改变了。令人沮丧地做出比我预期的更多的变化...... –

+0

这是4.2.3中的一个问题。 – isherwood

回答

0

您可以创建自己的充气组件(注意细节场)

export class DialogDetailComponent implements OnInit { 

    @Input() detail: Detail; 

    constructor(public dialogRef: MdDialogRef<DialogDetailComponent>) { 
    } 

    ngOnInit() { 
    } 

    close() { 
     this.dialogRef.close(); 
    } 

} 
export interface Detail { } 

,并创建一个开放,在您的服务对话框的方法

openDialogDetail(c: Type<DialogDetailComponent>, detail: Detail, afterClosed?: (data?) => any, type?: number, width: string = "80%", height: string = "80%", disableClose = false) { 

    let dialogRef = this.openDialog(c, afterClosed, width, height, disableClose); 

    if (detail) 
     dialogRef.componentInstance.detail = detail; 

    return dialogRef; 

} 
+0

谢谢。我遇到的问题是在2.0.0-beta.1中data属性没有实现。事实证明,在2.0.0-beta.2中它已经回来了。 –

+0

很高兴听到。不过,如果您需要更多灵活性,则可以使用此策略。再见! –