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 相关文章推荐
javascript Demo模态窗口
Dec 06 Javascript
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
Jul 31 Javascript
25个非常棒的jQuery滑块插件和教程小结
Sep 02 Javascript
给jqGrid数据行添加修改和删除操作链接(之一)
Nov 04 Javascript
基于JS实现简单的样式切换效果代码
Sep 04 Javascript
异步JS框架的作用以及实现方法
Oct 29 Javascript
Javascript闭包实例详解
Nov 29 Javascript
JQuery日历插件My97DatePicker日期范围限制
Jan 20 Javascript
jQuery中的for循环var与let的区别
Apr 21 jQuery
vue2.0实现的tab标签切换效果(内容可自定义)示例
Feb 11 Javascript
vue2.0项目集成Cesium的实现方法
Jul 30 Javascript
Javascript节流函数throttle和防抖函数debounce
Dec 03 Javascript
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
php Rename 更改文件、文件夹名称
2011/05/24 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
PHP符合PSR编程规范的实例分享
2016/12/21 PHP
制作特殊字的脚本
2006/06/26 Javascript
web前端开发也需要日志
2010/12/09 Javascript
js禁止回车提交表单的示例代码
2013/12/23 Javascript
JavaScript动态提示输入框输入字数的方法
2015/07/27 Javascript
javascript实现下雪效果【实例代码】
2016/05/03 Javascript
微信小程序 侧滑删除(左滑删除)
2017/05/23 Javascript
JS实现的缓冲运动效果示例
2018/04/30 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
运用js实现图层拖拽的功能
2019/05/24 Javascript
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
python解决方案:WindowsError: [Error 2]
2016/08/28 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
2020/04/17 Python
tensorflow2.0的函数签名与图结构(推荐)
2020/04/28 Python
django模型类中,null=True,blank=True用法说明
2020/07/09 Python
Python打印不合法的文件名
2020/07/31 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
英国最受欢迎的在线隐形眼镜商店:VisionDirect.co.uk
2018/12/06 全球购物
成龙霸王洗发水广告词
2014/03/14 职场文书
大学生求职信
2014/06/17 职场文书
如何写辞职信
2015/05/13 职场文书
2019单位介绍信怎么写
2019/06/24 职场文书
golang 如何用反射reflect操作结构体
2021/04/28 Golang
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript
node快速搭建后台的实现步骤
2022/02/18 NodeJs
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python
vue动态绑定style样式
2022/04/20 Vue.js