Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Angular File Upload (https://javascript.ru/forum/angular/39564-angular-file-upload.html)

potorochinau 04.07.2013 11:57

Angular File Upload
 
Всем добрый день.

Столкнулся с такой проблемой, хотел реализовать простой способ загрузки файлов на сервер без перезагрузки страницы естественно. Так как проект начат на AngukarJS(A), то загрузку тоже надо было сделать на A. Есть готовые решения типа JQuery-File-Upload, я их использовал и всё работало, также есть переписанная версия под А. Я обратил внимание на скрипт из книги AngularJS O'Reilly и в частности на его githab ветку https://github.com/shyamseshadri/ang...r8/file-upload там есть небольшой скрипт для загрузки файлов. На его установку ушло минут 5-10.

Собственно в чём вопрос, загрузка проходит удачно, файлы лежат на сервере, приходит ответ от сервера и тут должна сработать директива done, но повешенный на ней alert (в оригинале там "console.log('We just finished uploading this baby...');" ) не срабатывает. Также из ответа сервера в функцию uploadFinished() не передаётся data с ответом сервера((

Заранее спс всем ответившем.

DjDiablo 08.07.2013 10:24

Я не ставил и не запускал, но если посмотреть бегло на код По ссылке.

То там есть две функции.

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 нестоит, ведь его попросту несуществует


Часовой пояс GMT +3, время: 17:04.