2014-06-10 4 views
0

이 문제를 해결하는 가장 좋은 방법은 궁금합니다. 두 개의 추가 매개 변수가 주입 된 컨트롤러가 있습니다 : ConfigServiceDataAccess. ConfigService는 지시문에 대한 구성 객체를 반환합니다. 설정 객체는 서비스 내부의 JS 변수에 저장됩니다. ConfigService 반환 개체의 "data"속성은 DataAccess을 사용하여 반입됩니다.Angular JS 서비스의 구조 종속성

그래서 내 컨트롤러는 ConfigService의 반환 객체에 따라 일부 구성 데이터를 제공합니다. 해당 구성 서비스는 DataAccess에 따라 다릅니다.

내 컨트롤러를 둘 다 사용하는 것이 맞습니까? 아니면 ConfigService를 DataAccess에 종속시켜야하고 내 컨트롤러를 ConfigService에만 종속시켜야합니까?

+1

나는 config가 다른 설정을 제외하고는 어떤 것에 의존해야한다고 생각하지 않습니다. DataAccess는 아마도 config에 의존합니다. 그러나 네가 처음부터 분리되는 목적을 이길 수있는 다른 것을 통해 전달할 계획이 아니라면, 그렇습니다. –

답변

0

AngularJS에서 작업하기 전에 Misko 방법으로 작성된 코드 검토 자 안내서 (http://misko.hevery.com/code-reviewers-guide/)에는 실제로이 점에 대한 몇 가지 중요한 정보가 있습니다.

당신이 언급 한 것은 결함 # 2에 속할 수 있으며 공동 작업자를 파헤칠 수 있습니다. 간단히 말해 컨트롤러의 ConfigService에서 변수 또는 키에 액세스해야하는 경우 컨트롤러에 ConfigService를 삽입해야합니다. DataAccess 서비스를 통해 액세스해서는 안됩니다. 반면에 ConfigService에서 직접 필요한 것이 없다면 삽입하지 마십시오.

그 반대의 경우도 마찬가지입니다. 컨트롤러가 실제로 DataAccess가 필요하지 않은 경우), DataAccess를 컨트롤러에 삽입 할 필요가 없습니다. ConfigService가이를 처리하도록하고 컨트롤러가 완전히로드 된 ConfigService를 처리하도록합니다.