Angularjs使用单个列表进行拖放
Angularjs drag and drop using a single list
我在这个柱塞里有一个angular应用。
在这里,我试图实现一个拖放功能,只使用一个列表。
应用程序如下:
app.controller('MainCtrl', function($scope) {
$scope.people = [
{'id':'1' ,'name':'John','category':'m'},
{'id':'2', 'name':'Jack','category':'m'},
{'id':'3','name':'Mark','category':'m'},
{'id':'4','name':'Ernie','category':'m'},
{'id':'5','name':'Jane','category':'w'},
{'id':'6','name':'Jill','category':'w'},
{'id':'7','name':'Betty','category':'w'},
{'id':'8','name':'Mary','category':'w'}
];
$scope.addText = "";
$scope.dropSuccessHandler = function($event,index,array){
//array[index].category='w';
//findAndRemove(array, id, pid);
// alert(index, array[index]);
array.splice(index,1);
};
$scope.onDrop = function($event,$data,array){
// $data.category='m';
// $scope.people.splice($scope.people.indexOf($data.id), 1);
$scope.people.push($data);
//array.push($data);
};
});
问题是,当我试图将元素从右放到左时,控制器会彻底混淆。splice命令正在删除错误的名称。当我们把一个元素从左移到右时,它可以正常工作。
我怎么绕过这个?
当您在右侧的列表中拖动一个项目时,传递给dropSuccessHandler
函数的index
参数是右侧列表元素的索引,而不是实际javascript数组的索引。简是索引0,吉尔是索引1,等等。因此,如果你拖拽Jill, dropSuccessHandler
函数会移除索引为1的数组元素,即Jack.
相关文章:
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- 如何在Javascript中创建排序、拖放多级列表
- Jquery列表拖放
- 如何允许我的访问者通过拖放来排列列表项目
- 如何使用拖放创建带有链接的列表
- 如何将 jQuery UI 连接列表拖放限制为单个方向
- 如何在没有ng重复的情况下制作模板,并使用角度拖放列表将数据传递给$scope
- HTML5拖放教程 - 可排序列表
- 在 JQuery UI 拖放后查找列表中元素的索引
- jQuery拖放然后打开特定于每个列表项的警报
- JQueryUI:创建两个拖放列表的最佳方式,其中一个是可排序的,另一个在拖放时重新排序
- 如何使拖放列表复制而不是移动列表项
- Onsen UI+可排序列表(拖放)
- 通过JavaScript读取拖放顺序列表
- Dojo拖放;列表中的列表”;(嵌套列表)
- AngularJS: angular-拖放列表dnd-allowed-types在匹配dnd-type时不会求值为tru
- 拖放列表-两种方式
- 通过Ajax调用删除和追加列表后,拖放列表不工作
- 基于特定条件的拖放列表
- 角度 |如何包含拖放列表