Я не ставил и не запускал, но если посмотреть бегло на код По ссылке.
То там есть две функции.
1)progress
if (scope.progress) {
optionsObj.progress = function(e, data) {
scope.$apply(function() {
scope.progress({e: e, data: data});
});
}
}
2) done который как раз вызывает функцию finish
if (scope.done) {
optionsObj.done = function() {
scope.$apply(function() {
scope.done({e: e, data: data});
});
};
}
в первом случае e и data передаются через function(e, data)
во втором случае мы имеем function() иными словами data просто нету. Так что и ожидать что оно будет передано в finish нестоит, ведь его попросту несуществует