Pomyśl o module jako o miejscu, w którym można połączyć szereg innych rzeczy, takich jak dyrektywy, usługi, stałe itp. Moduły można wstrzykiwać do innych modułów, co zapewnia wysoki poziom ponownego wykorzystania.
Pisząc aplikację kątową, miałbyś moduł najwyższego poziomu, który jest kodem aplikacji (bez szablonów).
Usługi są głównie sposobem komunikacji między kontrolerami, ale można wprowadzić jedną usługę do drugiej. Usługi są często używane jako sposób na dotarcie do magazynów danych, a ludzie będą opakowywać kątowe interfejsy API, takie jak ngResource. Ta technika jest przydatna, ponieważ sprawia, że testowanie (zwłaszcza kpienie) jest dość łatwe. Możesz mieć usługi do wykonywania innych czynności, takich jak uwierzytelnianie, logowanie itp.
Dyrektywy są używane do tworzenia widżetów lub pakowania istniejących rzeczy, takich jak wtyczki jquery. Zawijanie istniejących wtyczek może być wyzwaniem, a powodem, dla którego warto to zrobić, jest ustanowienie dwukierunkowego powiązania danych między wtyczkami a angularem. Jeśli nie potrzebujesz dwukierunkowego wiązania danych, nie musisz ich zawijać.
Dyrektywa jest także miejscem do manipulacji DOM, przechwytywania zdarzeń DOM, itp. Nie powinieneś robić rzeczy związanych z DOM w kontrolerach lub usługach. Tworzenie dyrektyw może być dość skomplikowane. IMHO, polecam najpierw przyjrzeć się API w poszukiwaniu czegoś, co może zrobić to, czego szukasz LUB poprosić o radę Grupę Google Angular.