내 회사의 내부 도구로 (실제로) 거대한 Angular 2 응용 프로그램을 개발하고 있습니다. 응용 프로그램은 특정 하위 사용자 만 액세스 할 수있는 다양한 하위 응용 프로그램으로 구성됩니다.하위 구성 요소에서 DI 오류가 발생했습니다.
이렇게하려면 CanActivate 클래스를 사용하여 관찰 가능 객체를 반환하고 액세스를 확인하기 위해 내 서비스 중 하나를 쿼리했지만 서비스 가져 오기를 시도 할 때 클래스의 생성자가 무효화되었습니다.
그래서 응용 프로그램 자체에서 테스트를 이동했지만 동일한 방식으로 실패했습니다. 따라서 문제는 서비스 자체에있을 가능성이 큽니다. 가장 이상한 점은 앱 컨테이너가 동일한 서비스를 사용하고 있으며 문제가없는 것입니다 (서비스는 앱 메뉴를 생성하면서 사용 가능한 애플리케이션 목록도 제공함).
저는이 문제가 구성 요소의 로딩 순서 (아마도 Http
- 관련 됨)이지만 어디에서 볼 것인지 잘 모르겠습니다. 안타깝게도 애플리케이션의 복잡성을 감안할 때 문제를 격리하는 것은 매우 어렵고 무엇을해야할지 모르겠습니다.
비슷한 문제를 찾았지만 비슷한 상황이 발생했으나 그 동안에 Angular2 개발이 진행되어 그 솔루션이 쓸모 없게되었습니다.
[mcve]와 특정 오류가 없으면 거의 도움이되지 않습니다. – jonrsharpe
'CanActivate' 클래스 위에'@Injectable()'을 넣었습니까? – PierreDuc
@jonrsharpe 당신은 절대적으로 맞습니다.하지만 제가 말했듯이 제가이 행동을 분리하는 것은 불가능합니다. 응용 프로그램이 너무 복잡합니다 –