답변:
지시어, 서비스, 상수 등과 같은 다른 많은 것들을 연결하는 장소로 모듈을 생각하십시오. 모듈은 다른 모듈에 주입되어 높은 수준의 재사용을 제공 할 수 있습니다.
앵귤러 앱을 작성할 때 애플리케이션 코드 (템플릿없이) 인 최상위 모듈을 갖게됩니다.
서비스는 주로 컨트롤러간에 통신하는 방법이지만 한 서비스를 다른 서비스에 삽입 할 수 있습니다. 서비스는 종종 데이터 저장소에 접근하는 방법으로 사용되며 사람들은 ngResource와 같은 각도 API를 래핑합니다. 이 기술은 테스트 (특히 모의)를 매우 쉽게하기 때문에 유용합니다. 인증, 로깅 등과 같은 다른 작업을 수행하는 서비스를 가질 수 있습니다.
지시문은 위젯을 작성하거나 jquery 플러그인과 같은 기존 항목을 래핑하는 데 사용됩니다. 기존 플러그인을 감싸는 것은 어려울 수 있으며이를 수행하는 이유는 플러그인과 각도 사이에 양방향 데이터 바인딩을 설정하는 것입니다. 양방향 데이터 바인딩이 필요하지 않은 경우에는 랩핑 할 필요가 없습니다.
지시어는 DOM 조작, DOM 이벤트 포착 등을위한 장소이기도합니다. 컨트롤러 나 서비스에서 DOM 관련 작업을 수행해서는 안됩니다. 지시문을 작성하는 것은 꽤 복잡 할 수 있습니다. IMHO, 나는 당신이 찾고있는 것을 할 수있는 것을 찾기 위해 API를 먼저 보거나 Angular의 Google 그룹에 조언을 요청하는 것이 좋습니다.
내 개인 메모 (주로 문서, Google 그룹 게시물 및 SO 게시물의 스 니펫)에서 :
모듈
서비스
지시어 (아래 항목 중 일부는 본질적으로 동일한 것을 말하지만 때로는 약간 다른 표현이 많은 도움이된다는 것을 알았습니다)
모듈에서 Angular 사물 (종속성 주입 항목)을 정의하고 그룹화합니다.
서비스에서 데이터를 공유하고 웹 서버 상호 작용을 래핑합니다.
지시문에서 HTML을 확장하고 DOM 조작을 수행하십시오.
그리고 컨트롤러를 가능한 한 "얇게"만드십시오.