Angular DragDrop - 如何重新排序项目

时间:2015-01-06 13:32:32

标签: javascript angularjs drag-and-drop

情况:

我有一个应用程序,它使用angular-dragdrop在三个单独的列表之间移动项目。

拖放工作正常。但我还需要重新排序同一列表中的项目。

我在文档中看到也可以在onDrop上检索索引,但我不知道如何。 如果我能够检索索引 - 这是项目留在新数组中的位置 - 那么我将能够进行重新排序

代码:

        <ul class="thumbnails">
          <li class="span3" style='margin-left:10px;'>
            <div class="thumbnail" data-drop="true" ng-model='list1' data-jqyoui-options="optionsList1" jqyoui-droppable="{multiple:true}">
              <div class="caption">
                <div class="btn btn-info btn-draggable" ng-repeat="item in list1" ng-show="item.title" data-drag="{{item.drag}}" data-jqyoui-options="{revert: 'invalid'}" ng-model="list1" jqyoui-draggable="{index: {{$index}}, animate:true, onStart:'set_item_id({board_item_id: item.item_id}, {index: $index})'}">{{item.title}}</div>
              </div>
            </div>
          </li>
          <li class="span3" style='margin-left:10px;'>
            <div class="thumbnail" data-drop="true" ng-model='list2' data-jqyoui-options="{accept:'.btn-draggable:not([ng-model=list2])'}"  jqyoui-droppable="{multiple:true}">
              <div class="caption">
                <div class="btn btn-info btn-draggable" ng-repeat="item in list2" ng-show="item.title" data-drag="{{item.drag}}" data-jqyoui-options="{revert: 'invalid'}" ng-model="list2" jqyoui-draggable="{index: {{$index}},animate:true, onStart:'set_item_id({board_item_id: item.item_id}, {index: $index})'}">{{item.title}}</div>
              </div>
            </div>
          </li>
          <li class="span3" style='margin-left:10px;'>
            <div class="thumbnail" data-drop="true" ng-model='list3' data-jqyoui-options="{accept:'.btn-draggable:not([ng-model=list3])'}"  jqyoui-droppable="{multiple:true}">
              <div class="caption">
                <div class="btn btn-info btn-draggable" ng-repeat="item in list3" ng-show="item.title" data-drag="{{item.drag}}" data-jqyoui-options="{revert: 'invalid'}" ng-model="list3" jqyoui-draggable="{index: {{$index}},animate:true, onStart:'set_item_id({board_item_id: item.item_id}, {index: $index})'}">{{item.title}}</div>
              </div>
            </div>
          </li>

        </ul>

THE PLUNKER:

http://plnkr.co/edit/YiAylkMCX9TAGyyhwO1m?p=preview

问题:

如何使用angular-dragdrop重新排序列表中的项目?

非常感谢!

1 个答案:

答案 0 :(得分:1)

您需要添加其他指令,以确保列表中启用了排序选项。

data-drop="true" jqyoui-droppable="{index: {{$index}}}"

以下是工作演示:http://plnkr.co/edit/N0z6ud?p=preview