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 相关文章推荐
文字幻灯片
Jun 26 Javascript
基于jquery的页面划词搜索JS
Sep 14 Javascript
jquery ui dialog ie8出现滚动条的解决方法
Dec 06 Javascript
javascript 弹出窗口中是否显示地址栏的实现代码
Apr 14 Javascript
javascript事件模型实例分析
Jan 30 Javascript
js实现模拟计算器退格键删除文字效果的方法
May 07 Javascript
jQuery多级手风琴菜单实例讲解
Oct 22 Javascript
js实时获取窗口大小变化的实例代码
Nov 18 Javascript
three.js 入门案例详解
Jan 23 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
Aug 08 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
Aug 10 Javascript
关于JavaScript 中 if包含逗号表达式
Nov 27 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
PHP5常用函数列表(分享)
2013/06/07 PHP
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
MongoDB在PHP中的常用操作小结
2014/02/20 PHP
php获得url参数中具有&amp;的值的方法
2014/03/05 PHP
两个DIV等高的JS的实现代码
2007/12/23 Javascript
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
JS中confirm,alert,prompt函数使用区别分析
2010/04/01 Javascript
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
js对象的比较
2011/02/26 Javascript
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
2013/09/22 Javascript
angular.foreach 循环方法使用指南
2015/01/06 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
2016/04/17 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
2016/06/17 Javascript
AngularJS入门教程之REST和定制服务详解
2016/08/19 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
Angular2使用Guard和Resolve进行验证和权限控制
2017/04/24 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
javascript少儿编程关于返回值的函数内容
2018/05/27 Javascript
详解如何用webpack4从零开始构建react开发环境
2019/01/27 Javascript
详解nodejs 开发企业微信第三方应用入门教程
2019/03/12 NodeJs
微信小程序npm引入vant-weapp的踩坑记录
2019/08/01 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
2019/11/04 Javascript
python多进程读图提取特征存npy
2019/05/21 Python
Python3 批量扫描端口的例子
2019/07/25 Python
HTML5资源预加载(Link prefetch)详细介绍(给你的网页加速)
2014/05/07 HTML / CSS
洛佩桑酒店官方网站:Lopesan Hotels
2019/04/15 全球购物
美国领先的眼镜和太阳镜在线零售商:Glasses.com
2019/08/26 全球购物
Linux如何修改文件和文件夹的权限
2012/06/27 面试题
高级工程师岗位职责
2013/12/15 职场文书
工作表现评语
2014/01/19 职场文书
社区健康教育工作方案
2014/06/03 职场文书
陈斌强事迹观后感
2015/06/17 职场文书
SpringBoot SpringEL表达式的使用
2021/07/25 Java/Android
Redis实现分布式锁的五种方法详解
2022/06/14 Redis