AngularJS exposes large amounts of complex functionality, and lends itself very well to writing reusable, generic code. This article will be a detailed, and heavily opinionated look at what is Angular's Unit of reuse, directives, with an eye towards explaining their many frequently confusing features.
Full article