如何从MatSnackBarConfig获取数据属性

Jak*_*Ch. 6 angular-material2 angular

我在文档中读过,该MatSnackBarConfig对象可能有一个data代表的属性

数据被注入子组件.

所以我想我可以在通过openFromComponent方法打开的自定义零食栏中使用这些数据.问题是我可以这样做吗?如果是,那我该怎么做?

在文档中提供了一个示例,假设我将openSnackBar方法修改为以下内容:

应用程序/小吃店组分-example.ts

openSnackBar() {
  this.snackBar.openFromComponent(PizzaPartyComponent, {
    duration: 500, data: {message: 'Hello World!'}
  });
}
Run Code Online (Sandbox Code Playgroud)

现在,我怎样才能获得该data对象PizzaPartyComponent?我试图将它注入组件的构造函数,但无法解决.

//below code results in error

export class PizzaPartyComponent {
  constructor(private data: any) { 
    console.log(data); 
  }
}
Run Code Online (Sandbox Code Playgroud)

Jak*_*Ch. 13

我在材料的github页面上找到了解决方案.

事实证明我以错误的方式注入了数据.合适的是:

import {MAT_SNACK_BAR_DATA} from '@angular/material';

// @Component decorator omitted
export class PizzaPartyComponent {
  constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any) { }
}
Run Code Online (Sandbox Code Playgroud)