Hi there I have this \"confirmable\" button directive which I am working on,
The html code that will trigger the directive \'confirmable\'
You're doing it right. Controllers are for sharing common functionality among directives; you don't need one here. Also this case is so simple you don't even need a link function:
http://jsfiddle.net/V7Kpb/12/
Copying the directive attributes over in the link stage doesn't do anything as far as Angular is concerned. You'll just have a button with an ng-click
attribute but that was added after Angular processed the DOM.
Also note, element
as the second parameter to the link function already is jQLite (and presumably full jQuery if you have that linked in too.) No need to jQuerify it.
Also, regarding isolate scopes (the =, @ and & you mention). It's a lovely elegant syntax but the big downside is any other directives on the same element get isolated from scope too. So if you want to work with ngModel which is a common thing to do you can't use an isolate scope. Actually even in this case, if you use an isolate scope ng-click stop working. Because it will try to evaluate the expression which contains things not explicitly declared in the scope{} property.