在Angularjs中拖动项目时禁用jquery UI拖动

时间:2014-04-30 06:44:41

标签: javascript jquery angularjs jquery-ui drag-and-drop

在我的Angularjs应用中,我有一个项目列表,用户可以拖动每个项目。每个项目都是指令并将其命名为simple-element

app.directive('simpleElement',function(){
 return {
  restrict:'AE',
  template:'<span>Item</span>',
  controller:function(){

  },
  link:function(scope,element,attrs){
   element.draggable({
    revert:true,
    helper:'clone'
   });
  }
 }
});

现在我希望当用户拖动每个项目时,即使拖动成功与否,也可以拖动项目disabled的事件,以便用户无法再次拖动项目。我在Plunker上创建了一个具有拖放功能的示例。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我不知道这是一个最佳实践,但它对我有用。我在link函数中插入这些代码:

 $scope.$watch('item.visible',function(){

                //Enable Disableing when Item draged
                if($scope.item.visible == false){
                    element.draggable( "disable" );
                }
                if($scope.levelModel.visible == true){
                    element.draggable( "enable" );
                }
            });

首先观察model.then的visible属性,如果模型i中的属性更改决定启用或禁用该元素。