diff --git a/ngDraggable.js b/ngDraggable.js index 3f4a2ee..d51ad1a 100644 --- a/ngDraggable.js +++ b/ngDraggable.js @@ -37,7 +37,7 @@ angular.module("ngDraggable", []) var _dragOffset = null; - var _dragEnabled = false; + var _dragEnabled = attrs.ngDrag; var _pressTimer = null; @@ -72,7 +72,10 @@ angular.module("ngDraggable", []) // add listeners. scope.$on('$destroy', onDestroy); - scope.$watch(attrs.ngDrag, onEnableChange); + attrs.$observe('ngDrag', function(value){ + _dragEnabled = value; + if (_dragEnabled === 'false') _dragEnabled=false; + }); scope.$watch(attrs.ngCenterAnchor, onCenterAnchor); // wire up touch events if (_dragHandle) { @@ -89,9 +92,6 @@ angular.module("ngDraggable", []) var onDestroy = function (enable) { toggleListeners(false); }; - var onEnableChange = function (newVal, oldVal) { - _dragEnabled = (newVal); - }; var onCenterAnchor = function (newVal, oldVal) { if(angular.isDefined(newVal)) _centerAnchor = (newVal || 'true'); @@ -149,7 +149,6 @@ angular.module("ngDraggable", []) _dragOffset = {left:document.body.scrollLeft, top:document.body.scrollTop}; } - element.centerX = element[0].offsetWidth / 2; element.centerY = element[0].offsetHeight / 2; @@ -273,7 +272,7 @@ angular.module("ngDraggable", []) var _myid = scope.$id; - var _dropEnabled=false; + var _dropEnabled=attrs.ngDrop; var onDropCallback = $parse(attrs.ngDropSuccess);// || function(){}; @@ -290,7 +289,10 @@ angular.module("ngDraggable", []) if (!enable)return; // add listeners. - scope.$watch(attrs.ngDrop, onEnableChange); + attrs.$observe('ngDrop', function(value){ + _dropEnabled = value; + if (_dropEnabled === 'false') _dropEnabled=false; + }); scope.$on('$destroy', onDestroy); scope.$on('draggable:start', onDragStart); scope.$on('draggable:move', onDragMove); @@ -300,9 +302,6 @@ angular.module("ngDraggable", []) var onDestroy = function (enable) { toggleListeners(false); }; - var onEnableChange = function (newVal, oldVal) { - _dropEnabled=newVal; - }; var onDragStart = function(evt, obj) { if(! _dropEnabled)return; isTouching(obj.x,obj.y,obj.element); @@ -325,7 +324,6 @@ angular.module("ngDraggable", []) }; var onDragEnd = function (evt, obj) { - // don't listen to drop events if this is the element being dragged // only update the styles and return if (!_dropEnabled || _myid === obj.uid) { diff --git a/update-attr-val.html b/update-attr-val.html new file mode 100755 index 0000000..36d7bf8 --- /dev/null +++ b/update-attr-val.html @@ -0,0 +1,162 @@ + + +
+