2016-11-18 2 views
-1

내 회사의 내부 도구로 (실제로) 거대한 Angular 2 응용 프로그램을 개발하고 있습니다. 응용 프로그램은 특정 하위 사용자 만 액세스 할 수있는 다양한 하위 응용 프로그램으로 구성됩니다.하위 구성 요소에서 DI 오류가 발생했습니다.

이렇게하려면 CanActivate 클래스를 사용하여 관찰 가능 객체를 반환하고 액세스를 확인하기 위해 내 서비스 중 하나를 쿼리했지만 서비스 가져 오기를 시도 할 때 클래스의 생성자가 무효화되었습니다.

그래서 응용 프로그램 자체에서 테스트를 이동했지만 동일한 방식으로 실패했습니다. 따라서 문제는 서비스 자체에있을 가능성이 큽니다. 가장 이상한 점은 앱 컨테이너가 동일한 서비스를 사용하고 있으며 문제가없는 것입니다 (서비스는 앱 메뉴를 생성하면서 사용 가능한 애플리케이션 목록도 제공함).

저는이 문제가 구성 요소의 로딩 순서 (아마도 Http- 관련 됨)이지만 어디에서 볼 것인지 잘 모르겠습니다. 안타깝게도 애플리케이션의 복잡성을 감안할 때 문제를 격리하는 것은 매우 어렵고 무엇을해야할지 모르겠습니다.

비슷한 문제를 찾았지만 비슷한 상황이 발생했으나 그 동안에 Angular2 개발이 진행되어 그 솔루션이 쓸모 없게되었습니다.

+0

[mcve]와 특정 오류가 없으면 거의 도움이되지 않습니다. – jonrsharpe

+0

'CanActivate' 클래스 위에'@Injectable()'을 넣었습니까? – PierreDuc

+0

@jonrsharpe 당신은 절대적으로 맞습니다.하지만 제가 말했듯이 제가이 행동을 분리하는 것은 불가능합니다. 응용 프로그램이 너무 복잡합니다 –

답변

0

나는 하루 종일이 문제에 썼지 만, 나는 그것을 거의 알았다. .... 거의.
DI와 관련이 없지만 const 가져 오기에 문제가있는 것은 아닙니다. (물론 오류는 오해의 소지가 있습니다.) 이유는 모르겠습니다. 나는 그것을 움직 였고 이제는 제대로 작동한다. 어쨌든 고마워, .

관련 문제