繁体   English   中英

我无法注入MAT_DIALOG_DATA! 错误:必须从注入上下文中调用inject()

[英]I can't inject MAT_DIALOG_DATA! Error: inject() must be called from an injection context

我正在使用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)

进口量可能Inject ,而不是inject 因此,请使用以下导入

import { Component, OnInit, Inject } from '@angular/core';

并且,在组件的构造函数中

constructor(public dialogRef: MatDialogRef<TableEditorDialogComponent>,
    @Inject(MAT_DIALOG_DATA) public data: any) { }

正确注入MAT_DIALOG_DATA

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM