我有一个组件,旨在在Angular Material MdDialog中使用:
@Component({
...
})
export class MyComponent {
constructor(@Inject(MAT_DIALOG_DATA) public data: any, public dialogRef:
MdDialogRef<MyComponent>) {
...
}
}
我正在尝试使用Jasmine进行单元测试:
describe('MyComponent', () => {
let component: MyComponent;
let fixture: ComponentFixture<MyComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
SharedTestingModule,
],
declarations: [
MyComponent,
],
})
.compileComponents();
}));
...
});
很不幸,我遇到了以下错误:
错误:没有提供者 InjectionToken MdDialogData!
SharedTestingModule 导入并导出了我的自定义 Angular Material 模块,该模块本身又导入并导出了 MdDialogModule。
我该如何摆脱这个错误?
非常感谢你!
Angular 4.2.4
Angular Material 2.0.0-beta.7
Jasmine 2.5.3
let dialogRef = this.dialog.open(DeleteDialogComponent, { data: row.name //<-如果在此处放置i.e 4值,则会出现错误:InjectionToken MatDialogData没有提供程序,在这种情况下,DeleteDialogComponent继承自MatDialogRef,而MatDialogRef具有MAT_DIALOG_DATA作为可注入对象! });
- Aly González