gpt4 book ai didi

Angular 空注入(inject)器错误: No Provider for MatDialog

转载 作者:行者123 更新时间:2023-12-02 17:13:40 28 4
gpt4 key购买 nike

所以当我尝试加载我的 Angular 应用程序时,我收到此错误:

ERROR Error: Uncaught (in promise): 
NullInjectorError: StaticInjectorError(AppModule)[AppComponent -> MatDialog]:
StaticInjectorError(Platform: core)[AppComponent -> MatDialog]:

我的 ts 文件看起来像这样,每个其他帮助问题都说将 MatDialog 添加到我的 NgModule 导入中,但我已经这样做了,但仍然收到错误。大多数错误是 StaticInjectorErrors,而我的错误是 NullInjectorError,但我不确定这两者之间有什么区别。

import { Component, NgModule } from '@angular/core';
import { MatDialog, MatDialogConfig, MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { compileNgModule } from '@angular/compiler';
import { AppDialog } from '../appDialog/app-dialog.component';

@Component({
selector: 'app-component',
templateUrl: './app.component.html'
})
@NgModule({
imports: [MatDialog, MatDialogRef, MatDialogConfig, MatDialogModule]
})
export class AppComponent {


constructor(private appService: AppService, private dialog: MatDialog) {
}

openDialog() {

const dialogConfig = new MatDialogConfig();
dialogConfig.disableClose = true;
dialogConfig.height = "350px";
dialogConfig.width = "600px";
dialogConfig.data = {
};

const dialogRef = this.dialog.open(AppDialog, dialogConfig);
dialogRef.afterClosed().subscribe(result => {
console.log('closed dialog');
this.success = result;
})
}
}

最佳答案

在我的情况下,我在尝试构建如下对话框组件时看到此错误:

my-dialog.component.ts

<mat-dialog-container>
<mat-dialog-content>
<p>Hello</p>
<p>I am a dialog</p>
</mat-dialog-content>
<mat-dialog-actions>
<button mat-raised-button>Click me</button>
</mat-dialog-actions>
</mat-dialog-container>

问题是我使用的是mat-dialog-container。对于通过 matDialog.open(MyDialogComponent)

渲染的组件来说,这不是必需的

相反,只需完全删除 mat-dialog-container 并仅使用子节点。

关于 Angular 空注入(inject)器错误: No Provider for MatDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59851560/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com