Я хочу использовать dropzone для отображения миниатюр изображений, которые у меня уже есть на сервере. Я создаю CMS для сайта недвижимости. На сервере есть изображения, связанные с сайтами свойств. Когда страница загружается, функция инициализации моей зоны сброса отображает соответствующее изображение для данного сайта в виде эскиза в этой зоне.
На странице есть раскрывающийся список, который позволяет пользователю выбрать другой сайт. Когда они делают это, я хочу, чтобы объект dropbox снова делал то, что находится в функции init. Сделайте звонок на сервер и отобразите миниатюры, связанные с этим другим сайтом.
Я пока не смог найти решение (очевидно). Обычно я получаю что-то вроде "dropzone все еще прикреплено" с вещами, которые я пробовал. Кажется, я не вижу в документах ничего полезного.
Любая помощь будет оценена :) 1007 *
// мой объект dropzone
var myDropzone = $('#featured-development-dropzone').dropzone({
url: '@Url.Action("SaveFeaturedDevelopmentImage","Homepage")',
maxFiles: 1,
addRemoveLinks: true,
init: function () {
var myDropzone = this;
$("select").on('click', function () {
myDropzone.removeAllFiles(true);
});
var siteID = $('#siteDropdown').find(':selected').val();
$.ajax({
url: '@Url.Action("GetFeaturedDevelopmentImage", "Homepage")',
data: { siteID: siteID },
type: 'GET',
success: function (data) {
console.log(data);
if (data.data != null) {
var mockFile = {
name: data.filename,
size: data.fileSize
};
// Call the default addedfile event handler
myDropzone.emit("addedfile", mockFile);
console.log(typeof (data));
// And optionally show the thumbnail of the file:
myDropzone.emit("thumbnail", mockFile, "data:image/png;base64," + _arrayBufferToBase64(data.data));
myDropzone.emit("complete", mockFile);
}
}
});
this.on("sending", function (file, xhr, formData) {
formData.append("SiteID", siteID);
formData.append("imageTypeID", 4);
console.log(formData);
});
}
});
var prevSiteID;
$("select").on('click', function () {
prevSiteID = this.value;
}).change(function () {
var newSIteID = this.value;
// potentially put code here that will reinitialize the dropbox and display images associated with different site.
console.log(prevSiteID);
console.log(newSIteID);
changeFeaturedDevelopment(prevSiteID, newSIteID);