myAngularApp.directive('accordion', function() { return { restrict: 'AE', scope:{ accordionOnOpen: '&' // write attribute to scope variable }, link: function(scope, element, attrs, controller) { var $link = $(element).find('dt a'); var $pane = $(element).find('dd'); $(element).off('click').on('click',function(){ if(!$link.hasClass('active')){ $pane.slideDown(); $link.addClass('active'); scope.$apply(function() { scope.$eval(scope.accordionOnOpen); // compile attribute expression }); }else{ $pane.slideUp(); $link.removeClass('active'); } }); } }; } );