Wrap reader.onload callback in scope.apply() instead of calling scope.apply from it.
JSHint