Поэкспериментируйте с setTimeout:
scope.$watch(attrs.scroller, function(){
setTimeout(function() {
...
}, 1);
});
Функция внутри добавится в конец стека исполнения, что вам и нужно.
Если бы код был размещен на jsFiddle, то было бы проще проверить догадку.