0) @Inject 的定义
Angular Inject 装饰器定义取自 rangle.io:
@Inject()
@Inject() 是一种手动机制,用于让 Angular 知道
必须注入参数。
1) MAT_DIALOG_DATA 的定义
来自角度material dialog api:
MAT_DIALOG_DATA
可用于访问传入数据的注入令牌
到一个对话框。
2) 材料文档中@Inject(MAT_DIALOG_DATA) 的用法
在dialog docs 中,您可以找到如何与对话框组件共享数据。
如果您想与对话框共享数据,可以使用 data 选项将信息传递给对话框组件。
let dialogRef = dialog.open(YourDialog, {
data: { name: 'austin' },
});
要访问对话框组件中的数据,您必须使用 MAT_DIALOG_DATA 注入令牌:
import {Component, Inject} from '@angular/core';
import {MAT_DIALOG_DATA} from '@angular/material/dialog';
@Component({
selector: 'your-dialog',
template: 'passed in {{ data.name }}',
})
export class YourDialog {
constructor(@Inject(MAT_DIALOG_DATA) public data: any) { }
}
3) 完整的 stackblitz 示例
附加材料文档在 stackblitz 上提供了一个简单的full working example。