angular-ui-sortable实现可拖拽排序列表


Posted in Javascript onDecember 28, 2016

项目需求,添加列表可拖拽排序功能,谷歌了一下,找到一个Angular的插件:angular-ui-sortable,项目地址:https://github.com/angular-ui/ui-sortable

需要在之前引入jquery,和jquery-ui,否则无法使用。

我们要做的事情,加载数据,拖拽排序并输出当前顺序:

js代码:

<script src="../../jquery.js"></script>
<script src="../../jquery-ui.js"></script>
<script src="../../angular.js"></script>
<script src="ui-sortable/src/sortable.js"></script>
<script>
 angular.module("app", ["ui.sortable"])
  .controller("sortCtrl", function($scope, $timeout) {
   $scope.cannotSort = false;
   $scope.data = [{
    "name": "allen",
    "age": 21,
    "i": 0
   }, {
    "name": "bob",
    "age": 18,
    "i": 1
   }, {
    "name": "curry",
    "age": 25,
    "i": 2
   }, {
    "name": "david",
    "age": 30,
    "i": 3
   }];

   $scope.sortableOptions = {
    // 数据有变化
    update: function(e, ui) {
     console.log("update");
     //需要使用延时方法,否则会输出原始数据的顺序,可能是BUG?
     $timeout(function() {
      var resArr = [];
      for (var i = 0; i < $scope.data.length; i++) {
       resArr.push($scope.data[i].i);
      }
      console.log(resArr);
     })


    },

    // 完成拖拽动作
    stop: function(e, ui) {
     //do nothing
    }
   }
  })
</script>

html代码:

<body>
 <div ng-controller="sortCtrl">
  <ul ui-sortable="sortableOptions" ng-model="data">
   <li ng-repeat="item in data ">
    <span>{{item.name}}, {{item.age}}</span>
   </li>
  </ul>
 </div>
</body>

效果:

angular-ui-sortable实现可拖拽排序列表

我又另外添加了数据排序功能,不能直接使用orderBy筛选器,这样每次移动都会重新排序,需要使用orderByFilter和$watchCollection来实现效果,具体可查看地址:https://github.com/justforuse/Pro_Angular-demo/tree/master/draggable-list

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery select操作控制方法小结
May 26 Javascript
EditPlus注册码生成器(js代码实现)
Mar 25 Javascript
Javascript中判断变量是数组还是对象(array还是object)
Aug 14 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
Dec 30 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
Mar 01 Javascript
AngularJs  Creating Services详解及示例代码
Sep 02 Javascript
JavaScript提高加载和执行效率的方法
Feb 03 Javascript
JavaScript数据结构学习之数组、栈与队列
May 02 Javascript
javascript+html5+css3自定义提示窗口
Jun 21 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
Aug 06 Javascript
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
Aug 05 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
Jan 18 jQuery
JS正则表达式之非捕获分组用法实例分析
Dec 28 #Javascript
JavaScript实现经典排序算法之插入排序
Dec 28 #Javascript
JavaScript实现经典排序算法之选择排序
Dec 28 #Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
Dec 28 #Javascript
JavaScript实现经典排序算法之冒泡排序
Dec 28 #Javascript
BootStrap Tooltip插件源码解析
Dec 27 #Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
Dec 27 #Javascript
You might like
re0第二季蕾姆被制作组打入冷宫!艾米莉亚女主扶正,原因唏嘘
2020/04/02 日漫
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
PHP中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
linux下php上传文件注意事项
2016/06/11 PHP
PHP时间相关常用函数用法示例
2020/06/03 PHP
javascript parseInt与Number函数的区别
2010/01/21 Javascript
javascript中负数算术右移、逻辑右移的奥秘探索
2013/10/17 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
Javascript实现简单的富文本编辑器附演示
2014/06/16 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
JS分页的实现(同步与异步)
2017/09/16 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
Python探索之修改Python搜索路径
2017/10/25 Python
Python测试网络连通性示例【基于ping】
2018/08/03 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
Python常用模块之requests模块用法分析
2019/05/15 Python
浅谈Python __init__.py的作用
2020/10/28 Python
使用Canvas操作像素的方法
2018/06/14 HTML / CSS
独特的礼品和创新的科技产品:The Grommet
2018/02/24 全球购物
Python面试题:Python是如何进行内存管理的
2014/08/04 面试题
自我反省检讨书
2014/01/23 职场文书
趣味运动会活动方案
2014/02/12 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
安全演讲稿大全
2014/05/09 职场文书
企业承诺书怎么写
2014/05/24 职场文书
科学发展观演讲稿
2014/09/11 职场文书
详解Redis瘦身指南
2021/05/26 Redis
php去除数组中为0的元素的实例分析
2021/11/17 PHP
Go语言编译原理之源码调试
2022/08/05 Golang