Anggap sebuah modul sebagai tempat untuk memasang sejumlah hal lain, seperti arahan, layanan, konstanta, dll. Modul dapat disuntikkan ke modul lain yang memberi Anda tingkat penggunaan kembali yang tinggi.
Saat menulis aplikasi bersudut, Anda akan memiliki modul tingkat atas yang merupakan kode aplikasi Anda (tanpa templat).
Layanan terutama merupakan cara untuk berkomunikasi antar pengendali, tetapi Anda dapat menyuntikkan satu layanan ke yang lain. Layanan sering digunakan sebagai cara untuk sampai ke penyimpanan data Anda dan orang-orang akan membungkus API sudut, seperti ngResource. Teknik ini bermanfaat karena membuat pengujian (terutama mengejek) cukup mudah. Anda dapat memiliki layanan untuk melakukan hal-hal lain seperti otentikasi, masuk, dll.
Arahan digunakan untuk membuat widget atau membungkus hal-hal yang ada seperti plugin jquery. Membungkus plugin yang ada bisa menjadi tantangan dan alasan Anda melakukan ini adalah untuk membuat data dua arah yang mengikat antara plugin dan angular. Jika Anda tidak membutuhkan pengikatan data dua arah maka Anda tidak perlu membungkusnya.
Arahan juga merupakan tempat untuk melakukan manipulasi DOM, menangkap peristiwa DOM, dll. Anda tidak boleh melakukan hal-hal terkait DOM di pengontrol atau layanan. Membuat arahan bisa menjadi sangat kompleks. IMHO, saya sarankan pertama-tama melihat API untuk sesuatu yang dapat melakukan apa yang Anda cari ATAU minta saran Google Grup Angular.