在angular中安装MatDialog报错

在angular中安装MatDialog报错,怎么解决

img


import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AgGridModule } from 'ag-grid-angular';

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { HttpClientModule } from '@angular/common/http';
import { GridService } from './shared/service/grid.service';

import { MatDialog } from '@angular/material/dialog';
@NgModule({
  declarations: [
    AppComponent,
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    AgGridModule,
    HttpClientModule,
    MatDialog
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

该回答引用GPTᴼᴾᴱᴺᴬᴵ
在 Angular 中使用 MatDialog 需要将 MatDialogModule 导入到你的模块中。 你需要做以下更改:

1.在你的模块中导入 MatDialogModule:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AgGridModule } from 'ag-grid-angular';
 
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { HttpClientModule } from '@angular/common/http';
import { GridService } from './shared/service/grid.service';
 
import { MatDialogModule } from '@angular/material/dialog'; // <-- 加入这个 import
@NgModule({
  declarations: [
    AppComponent,
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    AgGridModule,
    HttpClientModule,
    MatDialogModule // <-- 加入这个模块
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }


2.把 MatDialog 从 imports 移到 providers 中

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AgGridModule } from 'ag-grid-angular';
 
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { HttpClientModule } from '@angular/common/http';
import { GridService } from './shared/service/grid.service';
 
import { MatDialogModule } from '@angular/material/dialog';
@NgModule({
  declarations: [
    AppComponent,
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    AgGridModule,
    HttpClientModule,
    MatDialogModule
  ],
  providers: [MatDialog], // <-- 把 MatDialog 从 imports 移到 providers
  bootstrap: [AppComponent]
})
export class AppModule { }


这应该解决你的问题。

库没有被 ngcc 处理,仔细检查一下。

解决了 是我写的命名不对 应该是import { MatDialogModule } from '@angular/material/dialog';
我写成了import { MatDialog } from '@angular/material/dialog';

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^