Using scope.$digest() rather than scope.$apply()

Following Andy Joslin's comment -

I would use scope.$digest() on the directive's scope, which will only digest that specific scope, instead of $apply (which is global).

https://groups.google.com/forum/#!topic/angular/KMaabQCggRA

This improves the performance tremendously.