2016-10-07 9 views
0

Я использую dropzone.js в приложении для рельсов. Dropzone является частью формы с другими входными элементами. При загрузке страницы div, содержащий форму, скрыт. При нажатии кнопки этот div сдвигается вниз. Однако на данном этапе Dropzone не инициализируется. Но он отлично работает, если я обновляю страницу и снова нажимаю ту же кнопку.Dropzone не загружается, если страница обновлена ​​

Это моя Dropzone функция (внутри document.ready)

function dropzoneControl() { 
    Dropzone.options.myDropzone = { 
     url: '/the_url', 
     autoProcessQueue: false, 
     uploadMultiple: true, 
     parallelUploads: 5, 
     maxFiles: 5, 
     maxFilesize: 3, 
     acceptedFiles: 'image/*', 
     addRemoveLinks: true, 
     headers: { 
      'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content') 
     }, 
     init: function() { 
      dzClosure = this; 
      document.getElementById("submit-button").addEventListener("click", function(e) { 
       e.preventDefault(); 
       e.stopPropagation(); 
       dzClosure.processQueue(); 
      }); 

      //send all the form data along with the files: 
      this.on("sendingmultiple", function(data, xhr, formData) { 
       formData.append("name", $("#name").val()); * * other data * * 

      }); 

      //on successful upload 
      this.on("successmultiple", function(file, responseText) { 
       $('#name').val(""); * * clear the rest of the form * * 
      }); 

      this.on("queuecomplete", function(file) { 
       this.removeAllFiles(); 
      }); 
     } 
    } 
} 
+0

Попробуйте использовать опции dropzone вне функции 'ready()' funtion, это должно решить проблему. Или вы можете инициализировать dropzone вручную, как только страница будет загружена конструктором, посмотрите на http://www.dropzonejs.com/#create-dropzones-programmatically, не забудьте установить 'Dropzone.autoDiscover = false' прежде чем использовать этот второй вариант. – wallek876

ответ

0

Проблема была turbolinks. Dropzone не работал, когда я пришел на страницу с другой страницы. Но работал, когда я обновил его напрямую. Добавлен data-no-turbolink в раздел, содержащий ссылку на страницу, и теперь он отлично работает.