3 ways angularjs directives can communicate. This is an interactive demo