개발관련/오류노트

Angular 오류 "EXCEPTION: Can't resolve all parameters for component"

Rateye 2021. 6. 7. 08:22
728x90
반응형
질문 : 각도 구성 요소에 서비스를 삽입하려고 할 때 오류 "예외 : 구성 요소에 대한 모든 매개 변수를 확인할 수 없습니다", 그 이유는 무엇입니까?

Angular에서 기본 앱을 빌드했지만 내 구성 요소 중 하나에 서비스를 삽입 할 수없는 이상한 문제가 발생했습니다. 그러나 내가 만든 세 가지 다른 구성 요소 중 하나에 잘 주입됩니다.

우선, 이것은 서비스입니다.

import { Injectable } from '@angular/core';

@Injectable()
export class MobileService {
  screenWidth: number;
  screenHeight: number;

  constructor() {
    this.screenWidth = window.outerWidth;
    this.screenHeight = window.outerHeight;

    window.addEventListener("resize", this.onWindowResize.bind(this) )
  }
  
  onWindowResize(ev: Event) {
    var win = (ev.currentTarget as Window);
    this.screenWidth = win.outerWidth;
    this.screenHeight = win.outerHeight;
  }
  
}

작업을 거부하는 구성 요소 :

import { Component, } from '@angular/core';
import { NgClass } from '@angular/common';
import { ROUTER_DIRECTIVES } from '@angular/router';

import {MobileService} from '../';

@Component({
  moduleId: module.id,
  selector: 'pm-header',
  templateUrl: 'header.component.html',
  styleUrls: ['header.component.css'],
  directives: [ROUTER_DIRECTIVES, NgClass],
})
export class HeaderComponent {
  mobileNav: boolean = false;

  constructor(public ms: MobileService) {
    console.log(ms);
  }

}

브라우저 콘솔에 표시되는 오류는 다음과 같습니다.

예외 : HeaderComponent : (?)의 모든 매개 변수를 확인할 수 없습니다.

예외 : HeaderComponent : (?)의 모든 매개 변수를 확인할 수 없습니다.

부트 스트랩 기능에 서비스가 있으므로 공급자가 있습니다. 그리고 문제없이 다른 구성 요소의 생성자에 삽입 할 수있는 것 같습니다.

답변

배럴 대신 직접 선언 된 파일에서 가져옵니다.

정확히 무엇이 문제의 원인인지 모르지만 여러 번 언급 한 것을 보았습니다 (아마도 일종의 순환 종속성).

또한 배럴의 수출 순서를 변경하여 수정할 수 있어야합니다 (자세한 내용은 모르지만 언급 됨).

출처 : https://stackoverflow.com/questions/37997824/error-when-trying-to-inject-a-service-into-an-angular-component-exception-can
728x90
반응형