angular - 如何从 MatSnackBarConfig 获取数据属性

标签 angular angular-material2

我读过 documentation , MatSnackBarConfig 对象可以有一个 data 属性代表

Data being injected into the child component.

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

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

app/snack-bar-component-example.ts

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

现在,如何获取 PizzaPartyComponent 中的 data 对象? 我试图将它注入(inject)到组件的构造函数中,但无法解析。

//below code results in error

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

最佳答案

我在 Material 的 github page 上找到了解决方案.

事实证明我以错误的方式注入(inject)了数据。正确的是:

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

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

关于angular - 如何从 MatSnackBarConfig 获取数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47763707/

相关文章:

css - 在 Angular 2 中 Hook 到没有触发器的动画回调

html - Angular flex 盒 : how to set max width to a div

html - 如何将 css 类用于 Angular Material 中的文本颜色?

Angular Material 2 日期选择器自动打开焦点

angular - 如何在悬停状态下更改 Angular Material 按钮的背景颜色?

javascript - Angular 2/4 文件读取器服务

angular - 以 Angular 8 向服务器数据添加查看更多选项

angular - 进行 Angular 内容投影的现代方法是什么?

angular - Angular 2 中的小数管道 - 仅逗号,无小数位

Angular 4 与 Material