Мне нужно загрузить файл, и я использую $http (этот код получается из моей функции .service()):
sendFile: function (params) {
return $http({method : 'post',
url : 'http://XXXXXXXXXXXXX/rest/file.json',
headers : { 'X-CSRF-Token' : $cookies['csrftoken']},
data : params
})
},
Теперь, для небольшого файла и хорошей строки нет проблем, но с большим файлом и/или с плохой/медленной линией возникает проблема UI: пользователь не может знать, когда загрузка будет завершена. Мне нужен индикатор выполнения.
Итак, у меня есть поиск в Интернете, но я не нашел решения. Есть ли возможность получить некоторый прогресс/уведомление от $http?
Я пробовал этот код без везения:
ProfileService.sendFile(data)
.then(function(ret) {
var uri = ret.data.uri;
scope.content = "Upload finished";
scope.postForm.fid = ret.data.fid;
scope.postForm.buttonDisabled = false;
},
function(error) {
scope.postForm.showError = true;
scope.postForm.errorMsg = error.data;
},
function(progress) {
console.log("inside progress");
console.log(progress)
}
);
Функция "прогресс" никогда не вызывается.
Я использую angular 1.2.x
Спасибо.