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实例教程(19) 使用HoTMetal(7)
Dec 23 Javascript
简单的前端js+ajax 购物车框架(入门篇)
Oct 29 Javascript
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
Dec 19 Javascript
javascript使用定时函数实现跳转到某个页面
Dec 25 Javascript
jQuery的观察者模式详解
Dec 22 Javascript
jquery实现简单的轮换出现效果实例
Jul 23 Javascript
jQuery判断浏览器并动态调整select宽度的方法
Mar 02 Javascript
JS代码防止SQL注入的方法(超简单)
Apr 12 Javascript
Angularjs中ng-repeat的简单实例
Aug 25 Javascript
jQuery实现弹出层效果
Dec 10 jQuery
Vue watch响应数据实现方法解析
Jul 10 Javascript
ant-design表单处理和常用方法及自定义验证操作
Oct 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
php使用PDO获取结果集的方法
2017/02/16 PHP
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
很棒的学习jQuery的12个网站推荐
2011/04/28 Javascript
jWiard 基于JQuery的强大的向导控件介绍
2011/10/28 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
2013/10/21 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
2013/11/27 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
浅析JavaScript动画
2015/06/10 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
基于jquery插件编写countdown计时器
2016/06/12 Javascript
jquery实用技巧之输入框提示语句
2016/07/28 Javascript
通过JS和PHP两种方法判断用户请求时使用的浏览器类型
2016/09/01 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
javascript基本数据类型和转换
2017/03/17 Javascript
整理关于Bootstrap表单的慕课笔记
2017/03/29 Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
2019/02/18 jQuery
vuex 中插件的编写案例解析
2019/06/10 Javascript
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
Python采用raw_input读取输入值的方法
2014/08/18 Python
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
利用Django-environ如何区分不同环境
2018/08/26 Python
python日志模块logbook使用方法
2019/09/19 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
Python用SSH连接到网络设备
2021/02/18 Python
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
简历中自我评价怎么写
2014/02/12 职场文书
学生生病请假条范文
2014/02/16 职场文书
小学生演讲稿大全
2014/04/25 职场文书
2015年度培训工作总结范文
2015/04/02 职场文书
环保主题班会教案
2015/08/13 职场文书
《金色的草地》教学反思
2016/02/17 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
浅谈MySQL之select优化方案
2021/08/07 MySQL