J'utilise le code suivant pour la zone de dépôt, mais j'obtiens une erreur. J'ai essayé de le déboguer, mais je ne parviens pas à résoudre cette action. Guide plz
http://jsfiddle.net/anam123/rL6Bh/
-------------------> "Error: Dropzone already attached.
throw new Error("Dropzone already attached.");"
Code::
https://Gist.github.com/compact/8118670
extraits:
/**
* 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) {
}
}
};
});
Problème résolu en utilisant la configuration du code suivant.
Donc vous pouvez soit:
Dropzone.autoDiscover = false;
ouDropzone.options.myAwesomeDropzone = false;
Référence:
FAQ sur Dropzone
Rien n'a fonctionné pour moi, alors je suis allé dans le fichier dropzone.js et j'ai changé la ligne qui génère une erreur (je pense que dans de nombreuses versions, c'est dans la ligne 426):
if (this.element.dropzone) {
throw new Error("Dropzone already attached.");
}
donc je remplace
throw new Error("Dropzone already attached.");
avec
return this.element.dropzone;
et ça marche
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);
});
}
});
J'étais confronté au même problème "Dropzone déjà attaché" car nous avions activé l'objet myDropzone
dans le script et que nous essayions de l'activer à nouveau.
Par exemple
if ($('#upl').attr('class')) {
var myDropzone = new Dropzone("#upl", {init: function () {
et encore essayer de l'activer
if (jQuery('#password').attr('save_profile')) {
var myDropzone = new Dropzone("#upl", {init: function () {
avec une autre action.
S'il vous plaît vérifier votre code.