Since the directive is only calling a function (and not trying to set a value on a property), you can use $eval instead of $parse (with a non-isolated scope):
scope.$apply(function() {
scope.$eval(attrs.confirmAction);
});
Or better, simply just use $apply, which will $eval()uate its argument against the scope:
scope.$apply(attrs.confirmAction);
Fiddle