我读过 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/