Почему обратный вызов загрузчика Slingshot выполняется только один раз при загрузке нескольких файлов в S3?

Я создаю экземпляр одного SlingShot uploader за загрузку для обработки загрузки нескольких файлов.

Чтобы быть более конкретным:

  1. Я отображаю один шаблон для каждой загрузки в моем _.each использование цикла Blaze.renderWithData(Template.uploadItem, file, targetNode);, Смотрите цикл ниже:

'change .fileBrowse':function(event, template){ _.each(event.currentTarget.files, function(file){ //...

  1. Я отслеживаю состояния каждого состояния загрузки (кроме прогресса) в локальной коллекции, ранее заполненной в _.each цикл..

  2. Я создаю экземпляр SlingShot uploader в моем Template.uploadItem.created функция, прикрепив его к моему объекту экземпляра шаблона (т.е. this.uploader = new Slingshot.Upload( ...)

  3. Я достигаю это используя Template.instance().uploader как показано в этом progress код помощника

    progress: function () { return Math.round(Template.instance().uploader.progress() * 100); }

Проблема: обратный вызов загрузчика вызывается только один раз, когда последний файл был опубликован. Все остальное работает нормально, но я не могу обновить свой пользовательский интерфейс, так как состояние не обновляется в моей локальной коллекции, как это должно быть при выполнении обратного вызова.

1 ответ

Хорошо, проблема решена, это была глупая ошибка: я использовал открытую переменную для хранения имени файла, поэтому он был украден из одного шаблона в другой.

Другие вопросы по тегам