2015-03-03 113 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