if the function is defined on the scope, you should be able to call it through the scope on the directive, unless it's not a shared scope. Then what you can do is attach it to the controller like so:
app.controller( 'myController', function( ) {
var me = this;
me.myFunc = function ( ) { console.log ( ' hello world ' ) ; };
} )
. directive( 'myDirective', function ( ) {
return {
scope: { myVar : true },
controller : '^myController',
link : function ( $scope, element, attribute, ctrl ) {
ctrl.myFunc ( ) ;
}
}
} ) ;
Let me know if this helps.