2015-03-03 173 views
1

我有两个简单的列表,可以将问题拖入和拖出。每次我拖累的问题之一,它改变其“激活”状态为true或false:角度拖放

$scope.onDrop = function ($event, $data, array) { 
    if ($data.Active) { 
     $data.Active = false; 
     array.push($data); 
    } 
    else if (!$data.Active) { 
     $data.Active = true; 
     array.push($data); 
    } 

}; 

这个伟大的工程,但我需要从能够拖放到同一个列表,因为他们限制用户正在拖动,因为这也会触发onDrop函数。

我使用:http://angular-dragdrop.github.io/angular-dragdrop/

我刚开始用拖放但是从我可以告诉文档的是,我不得不使用拖动通道/下降通道的属性,但是我我很难理解他们是如何工作的。

在我的标记,我有两个面板,像这样:

 <div class="col-md-6"> 
     <div class="panel panel-default"> 
      <div class="panel-heading"> 
       Aktiva frågor 

      </div> 
      <div class="panel panel-body">    
       <ul class="dnd" 
        drag-channel="A" 
        drop-channel="A" 
        ui-on-drop="onDrop($event,$data,activeQuestions)"> 

        <li ui-draggable="true" drag="aquestion" 
         on-drop-success="dropSuccessHandler($event,$index,activeQuestions)" 
         ng-repeat="aquestion in activeQuestions track by $index"> 
         {{aquestion.Name}} 
        </li> 
       </ul>     
      </div> 

     </div> 
    </div> 
    <div class="col-md-6"> 
     <div class="panel panel-default"> 
      <div class="panel-heading"> 
       Inaktiva Frågor 
      </div> 
      <div class="panel panel-body" > 
       <ul class="dnd" 
        drag-channel="B" 
        drop-channel="B" 
        ui-on-drop="onDrop($event,$data,inactiveQuestions)"> 
        <li ui-draggable="true" drag="iquestion" 
         on-drop-success="dropSuccessHandler($event,$index,inactiveQuestions)" 
         ng-repeat="iquestion in inactiveQuestions track by $index"> 
         {{iquestion.Name}} 
        </li> 
       </ul> 
       </div> 
      </div> 
    </div> 

我已经尝试了所有种类的A与B的组合,但都不是工作,所以很明显,我似乎不明白他们的逻辑。

或者,如果这不是解决问题的最佳方法,请让我知道更好的方法。 :)

回答

1

通过将主动逻辑移入我的代码来解决它。

+0

我相信我在找同样的东西。你能显示你的最终代码吗? – 2015-11-24 17:28:41

+0

没关系。得到它了。对于这样做的其他人,我在'ui-draggable'元素中放入'drag-channel ='B'',在'ui-on-drop'中放入'drop-channel ='B'' – 2015-11-24 17:34:21