Получение ошибки Dropzone уже прикреплен с помощью angular Директив
Я использую следующий код для зоны сбрасывания, но я получаю ошибку, я пытался отладить его, но я не могу разрешить это руководство по PLZ действий
http://jsfiddle.net/anam123/rL6Bh/
-------------------> "Error: Dropzone already attached.
throw new Error("Dropzone already attached.");"
Код::
https://gist.github.com/compact/8118670
snippts:
/**
* An AngularJS directive for Dropzone.js, http://www.dropzonejs.com/
*
* Usage:
*
* <div ng-app="app" ng-controller="SomeCtrl">
* <button dropzone="dropzoneConfig">
* Drag and drop files here or click to upload
* </button>
* </div>
*/
angular.module('dropzone', []).directive('dropzone', function () {
return function (scope, element, attrs) {
var config, dropzone;
config = scope[attrs.dropzone];
// create a Dropzone for the element with the given options
dropzone = new Dropzone(element[0], config.options);
// bind the given event handlers
_.each(config.eventHandlers, function (handler, event) {
dropzone.on(event, handler);
});
};
});
angular.module('app', ['dropzone']);
angular.module('app').controller('SomeCtrl', function ($scope) {
$scope.dropzoneConfig = {
'options': { // passed into the Dropzone constructor
'url': 'upload.php'
},
'eventHandlers': {
'sending': function (file, xhr, formData) {
},
'success': function (file, response) {
}
}
};
});
Ответы
Ответ 1
Решенная проблема с использованием следующей настройки кода.
Итак, вы можете:
- Отключить autoDiscover глобально следующим образом:
Dropzone.autoDiscover = false;
или
- Отключить автосохранение для определенных элементов, таких как
это:
Dropzone.options.myAwesomeDropzone = false;
Справка:
Часто задаваемые вопросы о dropzone
Ответ 2
Dropzone.autoDiscover = false;
$('#bannerupload').dropzone({
url: "/upload",
maxFilesize: 100,
paramName: "file",
maxThumbnailFilesize: 5,
init: function() {
this.on('success', function(file, json) {
jQuery("input#mediaid").val(json);
});
}
});
Ответ 3
Ничего не сработало для меня, поэтому я пошел в файл dropzone.js и изменил строку, которая выдает ошибку (я думаю, что во многих версиях это в строке 426):
if (this.element.dropzone) {
throw new Error("Dropzone already attached.");
}
поэтому я заменяю
throw new Error("Dropzone already attached.");
с
return this.element.dropzone;
и он работает
Ответ 4
Я столкнулся с той же проблемой "Dropzone уже прикреплен", потому что мы включили объект myDropzone
в script и снова пытались включить.
Например
if ($('#upl').attr('class')) {
var myDropzone = new Dropzone("#upl", {init: function () {
и снова пытается включить его
if (jQuery('#password').attr('save_profile')) {
var myDropzone = new Dropzone("#upl", {init: function () {
с другим действием.
Пожалуйста, проверьте свой код.
Ответ 5
Поместите код создаваемой дрозовы внутри блока try/catch
try{
$('.dropzone').dropzone({
url: '/upload'
});
}
catch(error){
console.log("Catching " + error);
}