Decoupling it all
AngularJS talks about Model View Whatever (MVW). There are a few frontend patterns that resemble each other and they share a common goal: decoupling and making the different concerns in the frontend more clear. The alternative to thinking in these manners is typically a model where the different concerns are all mixed together and coupled in a way that makes it harder to change. By thinking about the different concerns and separating these out, you have identified the responsibility and can make the different parts more specialized and focused. Although AngularJS lends itself, in terminology, more towards Model View Controller (MVC), over the years I've grown fond of the pattern called Model View ViewModel (MVVM), and even though I'm doing AngularJS from time to time, I still like to think in this manner.
MVVM is a pattern for client development that became very popular in the XAML stack, enabled by Microsoft based on Martin Fowlers presentation model (http:...