我正在使用MAT_DIALOG_DATA将数据传递到对话框,但是,在浏览器控制台中出现此错误。
Uncaught Error: inject() must be called from an injection context
at injectInjectorOnly (core.js:1767)
at inject (core.js:1778)
...
...
...
首先,我必须指出我正在使用角度7。
我观看了许多视频并阅读了许多文章,这些文章表明我在项目中包含的内容已足够: -我从角形材料中导入了MAT_DIALOG_DATA。 -我使用了对话框参考。 -我在构造函数中定义注入。
此处是component.ts代码:
import { Component, OnInit, inject } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA} from '@angular/material';
@Component({
selector: 'app-table-editor-dialog',
templateUrl: './table-editor-dialog.component.html',
styleUrls: ['./table-editor-dialog.component.scss']
})
export class TableEditorDialogComponent implements OnInit {
constructor(
@inject(MAT_DIALOG_DATA) public data: any,
public matDialogRef: MatDialogRef<TableEditorDialogComponent>
) { }
ngOnInit() {
}
getMessageId(id : Number){
}
}
我希望将数据传递给对话框。 现在发生了什么事。我的程序编译成功,但是在浏览器中,该程序停止运行并显示错误消息。
Uncaught Error: inject() must be called from an injection context
at injectInjectorOnly (core.js:1767)
答案 0 :(得分:1)
导入应该为Inject
,而不是inject
。因此,请使用以下导入
import { Component, OnInit, Inject } from '@angular/core';
而且,在组件的构造函数中
constructor(public dialogRef: MatDialogRef<TableEditorDialogComponent>,
@Inject(MAT_DIALOG_DATA) public data: any) { }