NOTE: I'm not actively maintaining this project any more. If any anyone would like to take on that responsible please get in touch
Drag and drop module for Angular JS with support for touch devices. demo
.
bower install ngDraggable
angular
and ngDraggable
to your code:<script src="https://github.com/fatlinesofcode/ngDraggable/raw/master//ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js"></script>
<script src="https://github.com/fatlinesofcode/ngDraggable/raw/master/ngDraggable.js"></script>
ngDraggable
module in your application.angular.module('app', ['ngDraggable']);
Draggable usage:
<div ng-drag="true" ng-drag-data="{obj}" ng-drag-success="onDragComplete($data,$event)" ng-center-anchor="true">
Draggable div
</div>
ng-center-anchor
is optional. If not specified, it defaults to false.ng-drag-handle
.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.
draggable:start
, draggable:move
and draggable:end
events are broadcast on drag actions.
Drop area usage:
<div ng-drop="true" ng-drop-success="onDropComplete($data,$event)" >
Drop area
</div>
app.controller('MainCtrl', function ($scope) {
$scope.onDragComplete=function(data,evt){
console.log("drag success, data:", data);
}
$scope.onDropComplete=function(data,evt){
console.log("drop success, data:", data);
}
};
We welcome pull requests but please check that all the examples still work if you modified the source base. There have been serveral PRs recently that broke core functionality. If you are feeling really keen you could include some protractor test cases in your PR.