Understanding Angular Directives: Explained with Examples