How do get angular to leave the original button in place and insert the template after it, instead of inserting the template as a child of the button?
You can't.
How do I get the directive to only be applied on an event? When the button is clicked for example?
I think you can add the matching class (ie with ng-class), it should pick it up if you have restrict: 'C'
.