为什么MatDialogRef需要3个类型的参数?

时间:2018-03-07 16:50:17

标签: angular typescript angular-material2

我试图使用角度材质对话框组件。我过去用它,我没有问题。但不知怎的,我不能像过去那样使用它。这是我的实施:

export class FilterDialogComponent implements OnInit {

public clientDepartementFilter: string;
public partnerDepartmentFilter: string;
public checkboxFilters: CheckboxFilters;

constructor(public dialogRef: MatDialogRef<FilterDialogComponent>,
          @Inject(MAT_DIALOG_DATA) public data: any) {

this.checkboxFilters = data.checkboxFilters;
this.clientDepartementFilter = data.clientDepartementFilter;
this.partnerDepartmentFilter = data.partnerDepartmentFilter;
}

closeDialog(): void {
this.dialogRef.close({ data: this.clientDepartementFilter });
}

我这样打开它:

public openDialog(): void {
this.dialog.open(FilterDialogComponent, {
  data: {
    checkboxFilters: this.checkboxFilters,
    clientDepartementFilter: this.clientDepartementFilter,
    partnerDepartmentFilter: this.partnerDepartmentFilter
  }
}).afterClosed().subscribe(result => {
  console.log(result);
});

}

我的代码编译但是当我使用

创建当前对话框的引用时出错
public dialogRef: MatDialogRef<FilterDialogComponent>

错误如下:

  

TS2314:通用类型&#39; MatDialogRef&#39;需要3种类型的参数

当我在MatDialog中添加任何类型时,错误消失但我不能再编译我的代码......

现在我有以下错误:

  

错误TS2707:通用类型&#39; MatDialogRef&#39;需要1到2个类型的参数。

我尝试更新角度材料angularCli和typescript但它仍然无法编译。

  

&#34; @ angular / cli&#34;:&#34; ^ 1.7.2&#34;,

     

&#34; @ angular / compiler-cli&#34;:&#34; ^ 5.0.0&#34;,

     

&#34;打字稿&#34;:&#34; ^ 2.4.2&#34;

     

&#34; @ angular / material&#34;:&#34; ^ 5.2.4&#34;,

对于它为何会发生的任何建议或想法? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

MatDialogRef通用接受1 or 2 type arguments

angular-material是AngularJS库。应该使用@angular/material代替。