通过在构造器中包含提供者:MatDialog
constructor(groupService: GroupService, public dialog: MatDialog) {}
我在运行时遇到以下错误
错误:没有 InjectionToken mat-dialog-scroll-strategy 的提供程序!
我已将 Matdialog 包含在“app.module.ts”中 我是否需要一个不同的提供商,是哪一个?我使用角度材料 2.0.0b12
您需要在导入中包含 MatDialog 模块。
import {MatDialogModule} from '@angular/material';
@NgModule({
imports :[MatDialogModule],
...
})
编辑2022年
您需要在导入中包含 MatDialog 模块。
import {MatDialogModule} from '@angular/material/dialog';
@NgModule({
imports :[MatDialogModule],
...
})
如果您尝试使用
@Injectable({providedIn: 'root'})
从服务打开延迟加载模块的对话框,也会发生此错误。
要修复它,您必须将该对话框移至主模块或删除
providedIn
表示法并将其添加为延迟加载模块中的 providers: []
。
从 import {MatDialogModule} from '@angular/material/dialog' 导入对话框; 通过将以下代码添加到您的 module.ts 文件中
import {MatDialogModule} from '@angular/material/dialog';
然后在imports中导入它,如下所示,
const MaterialComponent = [MatDialogModule];
尝试在模式对话框中使用
mat-paginator
时,我遇到了类似的错误。我得到的错误是未提供 mat-tooltip-scroll-strategy
。为了解决这个问题,我必须向组件本身提供 MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER
。解决方案如下所示。
import { MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER } from '@angular/material/tooltip';
@Component({
selector: 'app-dialog',
templateUrl: './dialog.component.html',
styleUrls: ['./dialog.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
viewProviders: [MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER],
})
export class DialogComponent { }