El problema no es angular es tu lógica, digo yo no he trabajado mucho con angular pero al menos desde la version 1.6 (lo se ya esta vieja) podrias trabajar con routes, cada route puede manejar un controlador distinto y un template distinto.
Investiga sobre routes y components, alli tienes todo lo que necesitas. cada vista puede trabajar con su propio componente/controlador/vista y todo lo que necesites.
Tambien tienes VueJS
https://github.com/chrisvfritz/vue-2...outing-example
Vamos AngularJS y VueJS lo llaman componentes, tu lo llamas modulo, pero al final es lo mismo y cumple su cometido.
Aqui algo con AngularJS
https://codecraft.tv/courses/angular...configuration/