Great post. I didn't understand the role of controllers and directives but this explained them well with a thoughtful walk through.
The idea of wrapping distinct chunks of logic in separate directives that can then be sprinkled around the DOM declaratively is great.
In my view this is a welcome alternative; in my (maybe limited) experience, many other JS frameworks have you writing substantial amounts of glue code (i.e. bug-magnet code) to achieve comparable things.