Drag and Drop Demo
this fiddle allows you to play with drag and drop directives
by Danish Farman
HTML
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.19/angular-sanitize.js"></script>
<script src="http://adaptv.github.io/adapt-strap/dist/adapt-strap.js"></script>
<script src="http://adaptv.github.io/adapt-strap/dist/adapt-strap.tpl.js"></script>
<link rel="stylesheet" href="http://adaptv.github.io/adapt-strap/dist/adapt-strap.css">
<div ng-app="adaptv.adaptStrapDocs" ng-controller="draggableCtrl">
<p>( Drag car from the <strong>list of cars</strong> to the <strong>basket</strong>. )</p>
<div class="rows">
<div class="col-md-3">
<ul id="car-list" class="list-group">
<li class="list-group-item active">List of Cars</li>
<!-- ========== Usage Drag ========== -->
<li class="list-group-item"
ad-drag="true"
ad-drag-data="car"
ad-drag-begin="onDragStart($data, $dragElement, $event);"
ad-drag-end="onDataEnd($data, $dragElement, $event);"
ng-repeat="car in models.cars">
<span>
<span class="glyphicon glyphicon-th"></span>
{{ car.name }} - {{ car.modelYear }} ( {{ car.price | currency }} )
</span>
</li>
</ul>
</div>
<div class="col-md-4">
<!-- ========== Usage Drop ========== -->
<ul id="my-basket"
class="list-group"
ad-drop="true"
ad-drop-over="onDragOver($data, $dragElement, $dropElement, $event);"
ad-drop-end="onDrop($data, $dragElement, $dropElement, $event);">
<li class="list-group-item disabled">My Basket</li>
<li class="list-group-item"
ad-drag="true"
ng-repeat="car in models.basket">
<span>
<span class="glyphicon glyphicon-thumbs-up"></span>
{{ car.name }} - {{ car.modelYear }} ( {{ car.price | currency }} )
</span>
</li>
<li class="list-group-item"...
JavaScript
// ========== initialize documentation app module ========== //
angular.module('adaptv.adaptStrapDocs', [
'ngSanitize',
'adaptv.adaptStrap'
])
// ========== controllers ========== //
angular.module('adaptv.adaptStrapDocs')
.controller('draggableCtrl', ['$scope', function($scope) {
$scope.models = {
basket: [],
cars: [
{
id: 1,
name: 'Audi A4',
modelYear: 2009,
price: 34000
},
{
id: 2,
name: 'BMW 328i',
modelYear: 2012,
price: 39000
},
{
id: 3,
name: 'Audi A6',
modelYear: 2012,
price: 44000
},
{
id: 4,
name: 'Audi S8',
modelYear: 2014,
price: 100000
},
{
id: 5,
name: 'Audi A4',
modelYear: 2009,
price: 34000
}
]
};
$scope.remove = function(l, o) {
var index = l.indexOf(o);
l.splice(index, 1);
};
$scope.onDragStart = function() {
};
$scope.onDragEnd = function() {
};
$scope.onDragOver = function() {
};
$scope.onDrop = function(data, dragElement, dropElement) {
if (dropElement.attr('id') === 'my-basket') {
$scope.models.basket.push(data);
$scope.remove($scope.models.cars, data);
}
};
}]);