-
-
Save compact/8118670 to your computer and use it in GitHub Desktop.
/** | |
* 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 | |
angular.forEach(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) { | |
} | |
} | |
}; | |
}); |
@nelsontubaina I'm getting the same error. What am I missing? Thanks!
Hi guys, im havin some troubles calling the directive
is there anyway to call this but instead of passing dropzoneConfig, pass the default options?,
something like this
when i dont pass anything i get this error
TypeError: Cannot read property 'options' of undefined
im trying to get rid of the scope, cause im already using one in my code,
any replies would help
hi I have one question . if I have to pass url dynamic . how we can implement that
how to limit only one file upload and make it replace with new dropped file with old one ?
@Sanzeeb: Check out the Dropzone docs.
Hi,
I need to use file upload action in several jades. Should i need to write dropzoneconfig for each controller. Is there any way to make this configuration object as global in angular?
I would have put this in the begining
var atts = attrs.dropzone.split('.');
var config = scope;
angular.forEach(atts,function(value,key){
config = config[value];
});
// Get the template
$.get(config.options.template).then(function(template){
So that if you send an array in your template and not only a scope var (variable from a controller for example) it will still work
Would it be possible to attach the success function response to the ng-model on the view? Something along the lines of
<div class="dropzone" dropzone="dropzoneConfig" ng-model="response"></div>
Can anyone advise me on how to update scope variables via the dropzone event handles? It seems you can access scope objects but can't update them from the callback.
Try new AngularJS directive for Dropzone https://github.com/thatisuday/ngDropzone
Nice. How do I send uploaded file along with other form inputs. I don't want instant upload
I have used AngularJS Inspinia admin template. I saw here original inspinia file dropzone not working properly. If I go other page to uploadfile page the dropzone not working. If I refreshed in that page. then dropzone working fine. Please tell me what is the issue behind that dropzone?
How is angular.forEach is better than _.each(). I prefer to use underscore.js or lodash.js.
Hi, How to add delete URL to delete the file? and Icon delete (X) is not deleting. Any help would be appreciated.
I'm having trouble with this part here:
config = scope[attrs.dropzone];
it gives error: Error: config is undefined
--> SORRY I WAS BEING A COMPLE ASS WIPE. IT WORKS LIKE A LICKY CHARM! THE LUCK O' THE IRISH! THANK YOU SO VERY MUCH!