如何从MatSnackBarConfig获取数据属性

时间:2017-12-12 00:42:32

标签: angular angular-material2

我已在documentation中读到,MatSnackBarConfig对象可能有data属性代表

  

将数据注入子组件。

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

在文档中提供了an example,假设我将openSnackBar方法修改为以下内容:

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

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

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

//below code results in error

export class PizzaPartyComponent {
  constructor(private data: any) { 
    console.log(data); 
  }
}

1 个答案:

答案 0 :(得分:10)

我在材料github page找到了解决方案。

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

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

// @Component decorator omitted
export class PizzaPartyComponent {
  constructor(@Inject(MAT_SNACK_BAR_DATA) public data: any) { }
}