2017-02-05 4 views
0

AuthService => login을 호출하면 이 호출되면 ErroHandler => handleError이 호출 될 때 이 올바르게 추가되고 로거 인스턴스는 항상 정의되지 않습니다 (클래스의 생성자 제외). 나는 브라우저 콘솔에 Bar!도 추가 할 것으로 예상했다. 누구든지이 동작을 설명 할 수 있습니까?Angular2 서비스 종속성 주입

참조 : https://embed.plnkr.co/cKwT5R39IL1TTJBRvZyY/

+2

같이해야한다 올바르게 주입되지 않았습니까? 문제 자체를 설명하는 세부 정보를 제공해주십시오. 필자가 아는 한, 관련 코드없이 깔끔한 링크를 게시하는 것은 허용되지 않습니다 (이에 대한 SO 편집기에 대한 경비가 있지만 무시되었습니다). – estus

답변

1

문제는 의존성 주입과는 아무 상관이 없습니다. DI 문제가 발생하면 컴파일러에서 오류 메시지가 나타납니다.

.catch(this.errorHandler.handleError); 

하고 상황에 제대로 결합되지 않은 : errorHandler.handleError 방법은 여기 콜백으로 전달되기 때문에

발생합니다.

이것은 일반적인 실수입니다. 이 객체 메소드는 객체 생성 (이 디자인에 의해 콜백으로 사용할 수 해야하는 방법에 대한 좋은 습관이다)에 결합 된 것으로 알려져있다 않는 한, 그것은 항상 당신이 생각 했는가 무엇

.catch(err => this.errorHandler.handleError(err));