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控制iframe滚动的代码
Apr 10 Javascript
struts2 jquery 打造无限层次的树
Oct 23 Javascript
jQuery的Ajax时无响应数据的解决方法
May 25 Javascript
javascript模块化是什么及其优缺点介绍
Sep 02 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
Dec 06 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
Apr 22 Javascript
react-native之ART绘图方法详解
Aug 08 Javascript
Three.js利用dat.GUI如何简化试验流程详解
Sep 26 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
Oct 24 Javascript
关于HTML5的data-*自定义属性的总结
May 05 Javascript
OpenLayers3实现对地图的基本操作
Sep 28 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
Nov 04 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
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
突发奇想的一个jquery插件
2010/11/19 Javascript
jquery动画1.加载指示器
2012/08/24 Javascript
如何实现修改密码时密码框显示保存到cookie的密码
2013/12/10 Javascript
JS实现闪动的title消息提醒效果
2014/06/20 Javascript
2014最热门的JavaScript代码高亮插件推荐
2014/11/25 Javascript
Nodejs进阶:核心模块net入门学习与实例讲解
2016/11/21 NodeJs
js实现倒计时关键代码
2017/05/05 Javascript
JS奇技之利用scroll来监听resize详解
2017/06/15 Javascript
jQuery实现用户信息表格的添加和删除功能
2017/09/12 jQuery
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
2017/11/10 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
python中self原理实例分析
2015/04/30 Python
简单谈谈python的反射机制
2016/06/28 Python
python和ruby,我选谁?
2017/09/13 Python
Python爬取附近餐馆信息代码示例
2017/12/09 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
pandas数据处理进阶详解
2019/10/11 Python
Django之form组件自动校验数据实现
2020/01/14 Python
python打印文件的前几行或最后几行教程
2020/02/13 Python
Python3如何判断三角形的类型
2020/04/12 Python
matplotlib交互式数据光标mpldatacursor的实现
2021/02/03 Python
美国最大的在线生存商店:Survival Frog
2020/12/13 全球购物
关于毕业的中学校园广播稿
2014/01/26 职场文书
销售员个人求职的自我评价
2014/02/10 职场文书
护士自我鉴定总结
2014/03/24 职场文书
经济管理专业求职信
2014/06/09 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
穆斯林的葬礼读书笔记
2015/06/26 职场文书
2015中学教学工作总结
2015/07/22 职场文书
汽车销售合同文本
2019/08/08 职场文书
实战 快速定位MySQL的慢SQL
2022/03/22 MySQL