【发布时间】:2019-02-27 10:19:46
【问题描述】:
我是编码新手,也是 Angular 新手,所以我想我会寻求帮助。这是我的第一个问题,请耐心等待。
我想为 Angular Material Dialog Service 创建一个包装服务(我只是想自学 - 这不是用于生产应用程序)所以我在我的应用程序中创建了一个服务,如下所示:
import {Injectable} from '@angular/core';
import {MatDialog} from '@angular/material';
@Injectable({
providedIn: 'root'
})
export class MatDialogWrapperService {
constructor(private dialog: MatDialog) {
}
open(componentRef, config = {}) {
this.dialog.open(componentRef, config);
}
}
现在我尝试将它添加到我的应用程序中的另一个角度组件,如下所示:我导入它,将其添加到提供程序数组,将其放入构造函数中,然后将其放入方法中(我已经删除了一些代码为了阅读方便)
@Component({
selector: 'app-intro-form',
templateUrl: './intro-form.component.html',
providers: [MatDialogWrapperService],
styleUrls: ['./intro-form.component.scss']
})
export class IntroFormComponent {
constructor(private modalService: MatDialogWrapperService ) {
}
modalCall() {
this.modalService.open(ModalFormComponent, {width: '500px'});
}
}
当我加载我的应用程序时,我在控制台中看到以下错误:
未处理的承诺拒绝:StaticInjectorError(AppModule)[ MatDialogWrapperService -> MatDialog]:StaticInjectorError(平台: 核心)[ MatDialogWrapperService -> MatDialog]:
NullInjectorError:没有 MatDialog 的提供者! ;区域:;任务: 承诺.then ;值:错误:StaticInjectorError(AppModule)[ MatDialogWrapperService -> MatDialog]:StaticInjectorError(平台: 核心)[ MatDialogWrapperService -> MatDialog]:
我认为我在包装服务中正确注入了 MatDialog?我做错了什么?
提前致谢。
【问题讨论】:
-
您是否将
MatDialogModule添加到您的模块导入中? -
@chiril.sarajiu - Facepalm....谢谢!那是我的错!