Почему обратный вызов загрузчика Slingshot выполняется только один раз при загрузке нескольких файлов в S3?
Я создаю экземпляр одного SlingShot uploader
за загрузку для обработки загрузки нескольких файлов.
Чтобы быть более конкретным:
- Я отображаю один шаблон для каждой загрузки в моем
_.each
использование циклаBlaze.renderWithData(Template.uploadItem, file, targetNode);
, Смотрите цикл ниже:
'change .fileBrowse':function(event, template){
_.each(event.currentTarget.files, function(file){
//...
Я отслеживаю состояния каждого состояния загрузки (кроме прогресса) в локальной коллекции, ранее заполненной в
_.each
цикл..Я создаю экземпляр
SlingShot uploader
в моемTemplate.uploadItem.created
функция, прикрепив его к моему объекту экземпляра шаблона (т.е.this.uploader = new Slingshot.Upload( ...
)Я достигаю это используя
Template.instance().uploader
как показано в этомprogress
код помощникаprogress: function () { return Math.round(Template.instance().uploader.progress() * 100); }
Проблема: обратный вызов загрузчика вызывается только один раз, когда последний файл был опубликован. Все остальное работает нормально, но я не могу обновить свой пользовательский интерфейс, так как состояние не обновляется в моей локальной коллекции, как это должно быть при выполнении обратного вызова.
1 ответ
Хорошо, проблема решена, это была глупая ошибка: я использовал открытую переменную для хранения имени файла, поэтому он был украден из одного шаблона в другой.