You could always move the timeout into the directive, right?
angular.module('myApp').directive("footable", function($timeout) {
return {
restrict: 'A',
link: function(scope, element, attrs){
element.footable(scope.$eval(attrs.footable));
$timeout(function(){
element.trigger('footable_redraw');
}, 100);
}
}
});
This is a little better Angular zen, but there may be a better way to deal with this with footable itself.