<!DOCTYPE html>
<html>

  <head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script>
    <script src="https://code.angularjs.org/1.4.0-beta.6/angular.js" data-semver="1.4.0-beta.6" data-require="angular.js@*"></script>
    <script src="https://raw.githubusercontent.com/codef0rmer/angular-dragdrop/master/src/angular-dragdrop.min.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body ng-app="myapp" ng-controller='myController'>
    <div class="lane" 
      ng-repeat="lane in lanes"
      id="{{lane.id}}"
      data-drop="true"
      jqyoui-droppable="{multiple: true, onDrop: 'dropCallback'}"
      data-jqyoui-options="{ hoverClass: 'lane-drop-active', tolerance: 'pointer'}">

      <div class="card" 
        ng-repeat="card in cards | filter: {lane : lane.id }"
        data-drag="true"
        data-jqyoui-options="{ revert: revertCard, helper: 'clone', appendTo: 'body', cursor: 'move', cancel: '.card-description', zIndex: 350 }"
        jqyoui-draggable="{index: 0, placeholder:true, animate:true, onStart: 'startCallback'}">
      </div>
    </div>
  </body>

</html>
// Code goes here

(function(){
  'use strict';
  var app = angular.module('myapp', ['ngDragDrop']);

  app.controller('myController', function($scope, $http){
    
    $scope.cards = [
      {lane:'lane1'},
      {lane:'lane1'},
      {lane:'lane2'},
      {lane:'lane2'},
      {lane:'lane3'},
      {lane:'lane3'}
    ];
    
    $scope.lanes = [
      {id:'lane1'},
      {id:'lane2'},
      {id:'lane3'}
    ];
    
    // drag
    $scope.startCallback = function (event, ui) {
      var $draggable = $(event.target);
      ui.helper.width($draggable.width());
      ui.helper.height($draggable.height());
      $draggable.css('opacity', '0');
    };

    $scope.revertCard = function (valid) {
      if (!valid) {
        var that = this;
        setTimeout(function () {
          $(that).css('opacity', 'inherit');
        }, 500);
      }
      return !valid;
    };

    // drop
    $scope.dropCallback = function (event, ui) {
      var $lane = $(event.target);
      var $card = ui.draggable;
      if ($card.scope().card.lane != $lane.scope().lane.id) {
        $card.scope().card.lane = $lane.scope().lane.id;
      }
      else {
        $card.css('opacity', 'inherit');
        return false;
      }
    };
  });
}());
/* Styles go here */

.lane{
  width:100%;
  height:60px;
  border:1px solid black;
}

.card{
  background:grey;
  width:50px;
  height:50px;
  float:left;
  margin-left:5px;
  margin-top:5px;
}
AngularJS Drag&Drop example

It shows 3 lanes with 6 cards and you can drag and drop cards from one lane to the other one.