错误信息:
Error: Can't resolve all parameters for LoginCompComponent: ([object Object], [object Object], [object Object], [object Object], ?).
Evaluating src/main.ts
Booting application
该组件如下所示:
导入:
import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import {MatSnackBar} from '@angular/material';
import { MatButtonModule, MatCheckboxModule } from '@angular/material';
import { OverlayReference } from './overlay-ref';
import { UsersService } from '../service/users.service';
import { OverlayService } from '../service/overlay.service';
import {TranslatePipe} from '../service/translate.pipe';
import {TranslationService} from '../service/translation.service';
构造者:
constructor(
private router: Router,
private usersService: UsersService,
//private overlay: OverlayService,
public translationService: TranslationService,
public snackBar: MatSnackBar,
) {}
奇迹是,如果您注释overlay:OverlayService
,它将很好地工作;如果我取消注释此行,它将消失,并在开头出现错误消息。有什么想法吗?
Here是一个StackBlitz链接,如果您想查看全部内容。
答案 0 :(得分:1)
TypeScript模块之间具有循环依赖关系:OverlayService导入LoginComponent,而LoginComponent导入OverlayService。
重构代码以避免这种情况。
答案 1 :(得分:1)
您可以在 OverlayService 中导入import { LoginCompComponent } from '../login-comp/login-comp.component'
,也可以在 LoginComponent 中导入import { OverlayService } from '../service/overlay.service';
。
非常不好的做法:)需要重构