Skip to content

Commit 8a5159d

Browse files
committed
Merge pull request angular-dragdrop#92 from kfreisen/master
Add ability to pass custom events to drop zones for drag enter/leave.
2 parents e2cb7c9 + 73fb81e commit 8a5159d

File tree

2 files changed

+26
-18
lines changed

2 files changed

+26
-18
lines changed

Diff for: draganddrop.js

+25-17
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* To change this template use File | Settings | File Templates.
77
*/
88

9-
(function(){
9+
(function(angular){
1010

1111
function isDnDsSupported(){
1212
return 'draggable' in document.createElement("span");
@@ -138,6 +138,8 @@ angular.module("ang-drag-drop",[])
138138
var dragChannel = "";
139139
var dragEnterClass = attr.dragEnterClass || "on-drag-enter";
140140
var dragHoverClass = attr.dragHoverClass || "on-drag-hover";
141+
var customDragEnterEvent = $parse(attr.onDragEnter);
142+
var customDragLeaveEvent = $parse(attr.onDragLeave);
141143

142144
function onDragOver(e) {
143145
if (e.preventDefault) {
@@ -153,31 +155,37 @@ angular.module("ang-drag-drop",[])
153155
}
154156

155157
function onDragLeave(e) {
156-
if (e.preventDefault) {
157-
e.preventDefault();
158-
}
159-
160-
if (e.stopPropagation) {
161-
e.stopPropagation();
162-
}
163-
dragging--;
164-
165-
if (dragging == 0) {
166-
element.removeClass(dragHoverClass);
167-
}
158+
if (e.preventDefault) {
159+
e.preventDefault();
160+
}
161+
162+
if (e.stopPropagation) {
163+
e.stopPropagation();
164+
}
165+
dragging--;
166+
167+
if (dragging == 0) {
168+
scope.$apply(function () {
169+
customDragEnterEvent(scope, {$event: e});
170+
});
171+
element.removeClass(dragHoverClass);
172+
}
168173
}
169174

170-
function onDragEnter(e) {
171-
if (e.preventDefault) {
175+
function onDragEnter(e) {
176+
if (e.preventDefault) {
172177
e.preventDefault();
173178
}
174179

175180
if (e.stopPropagation) {
176181
e.stopPropagation();
177182
}
178-
dragging++;
183+
dragging++;
179184

180185
$rootScope.$broadcast("ANGULAR_HOVER", dragChannel);
186+
scope.$apply(function () {
187+
customDragLeaveEvent(scope, {$event: e});
188+
});
181189
element.addClass(dragHoverClass);
182190
}
183191

@@ -354,4 +362,4 @@ angular.module("ang-drag-drop",[])
354362
}
355363
]);
356364

357-
}());
365+
}(angular));

Diff for: js/app.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
angular.module('app', [
1010
'hljs',
11-
'ngDragDrop'
11+
'ang-drag-drop'
1212
])
1313

1414
.controller('MainCtrl', function($scope) {

0 commit comments

Comments
 (0)