Как остановить выполнение метода в $ scope. $ On до окончания загрузки - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь загрузить пакет файлов при сохранении формы.Метод должен дождаться окончания загрузки файла, а затем выполнить сохранение.Прямо сейчас метод не ждет и сохраняет перед загрузкой файлов.

Вот мой код

$scope.$on("formSubmitting", function (ev, args) {
        $scope.uploadPendingFiles();
    });

uploadPendingFiles ();делает отправку XMLHttpRequest.

Есть идеи, как это сделать?

РЕДАКТИРОВАТЬ

как указано, больше информации:

Вкл.В форме я могу выбрать некоторые файлы для загрузки, но загрузка должна начаться только тогда, когда пользователь нажмет кнопку «Сохранить».Родительский контроллер передает formSubmitting при нажатии кнопки Сохранить, и я хочу отображать gif загрузки, пока все файлы не будут загружены.

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Поскольку ваша задача основана на устаревшем коде, решение может использовать preventDefault() метод для click события кнопки отправки.

Итак, я подготовил образец , описывающийваш случай (пожалуйста, скажите, если в нем есть недоразумение).

О распространении события в нескольких словах, которые вы можете прочитать в этой статье .

Надеюсь, это поможет!

0 голосов
/ 01 октября 2018

@ TestzWCh, похоже, вам нужно использовать обещания.Метод загрузки (с http-запросом) должен возвращать $q.defer().promise, который вы будете использовать следующим образом:

FileService.uploadingMethodPromise().then(function(result){ // do your logic with result -- enable Save button, or send saving request.. })

Что я могу сделать для вашей задачи?

...