AngularJS Example:

by wittwerj

HTML

<div ng-app='testApp'>
  <div ng-controller="testCtrl as vm">
      <div draggable="true" test-draggable ds="vm.dragStart(e)">Drag me!</div>
  </div>
</div>

JavaScript

var app = angular.module('testApp', []);

angular.module('testApp').directive('testDraggable', function(){
    var directive = {
        scope: {
            ds: '&',
        },
        restrict: 'A',
        link: link
    };
    
    function link(scope, element, attrs){
        var dragStartCallback = function(event){
            alert('dragStartCallback!');
            scope.ds({e: event});
        }
        
        element[0].addEventListener('dragstart', dragStartCallback, false);
    }
    return directive;
});


angular.module('testApp').controller('testCtrl', [testCtrl]);

function testCtrl() {
    var vm = this;
    vm.dragStart = dragStart;
  
    function dragStart(e){
        alert('drag started!', e);
    }
  
}