diff --git a/README.md b/README.md index 8f72f5b..a6c0d22 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,8 @@ Draggable usage: ```ng-drag-start``` and ```ng-drag-move``` is also available. Add to the ng-drop element. ``ng-drag-stop`` can be used when you want to react to the user dragging an item and it wasn't dropped into the target container. +```ng-drag-dynamic``` can be used when you want to set ng-drop enable value at the moment you start dragging. + ```draggable:start```, ```draggable:move``` and ```draggable:end``` events are broadcast on drag actions. diff --git a/ngDraggable.js b/ngDraggable.js index 3f4a2ee..9730e80 100644 --- a/ngDraggable.js +++ b/ngDraggable.js @@ -280,7 +280,8 @@ angular.module("ngDraggable", []) var onDragStartCallback = $parse(attrs.ngDragStart); var onDragStopCallback = $parse(attrs.ngDragStop); var onDragMoveCallback = $parse(attrs.ngDragMove); - + var onDragDynamicCallback = $parse(attrs.ngDragDynamic); + var initialize = function () { toggleListeners(true); }; @@ -304,6 +305,13 @@ angular.module("ngDraggable", []) _dropEnabled=newVal; }; var onDragStart = function(evt, obj) { + if(attrs.ngDragDynamic) { + $timeout(function(){ + var enable = onDragDynamicCallback(scope, {$data: obj.data, $event: obj}); + _dropEnabled = enable; + }); + } + if(! _dropEnabled)return; isTouching(obj.x,obj.y,obj.element);