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实现地铁线路指示灯提示牌效果的方法
Mar 02 Javascript
JavaScript获取当前日期是星期几的方法
Apr 06 Javascript
EasyUI在表单提交之前进行验证的实例代码
Jun 24 Javascript
浅析Jquery操作select
Dec 13 Javascript
将 vue 生成的 js 上传到七牛的实例
Jul 28 Javascript
Ionic3实现图片瀑布流布局
Aug 09 Javascript
使用D3.js制作图表详解
Aug 13 Javascript
详解Vue2.0 事件派发与接收
Sep 05 Javascript
详解Vue 事件修饰符capture 的使用
Dec 29 Javascript
JS中Map和ForEach的区别
Feb 05 Javascript
Laravel admin实现消息提醒、播放音频功能
Jul 10 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
Sep 07 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版(2)
2006/10/09 PHP
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
2015/07/01 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
javascrip关于继承的小例子
2013/05/10 Javascript
js获取GridView中行数据的两种方法 分享
2013/07/13 Javascript
js浮点数保留两位小数点示例代码(四舍五入)
2013/12/26 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
node.js中的fs.mkdir方法使用说明
2014/12/17 Javascript
jQuery时间轴插件使用详解
2015/07/16 Javascript
JS实现支持多选的遍历下拉列表代码
2015/08/20 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
jQuery自适应轮播图插件Swiper用法示例
2016/08/24 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
Vue.js实现实例搜索应用功能详细代码
2017/08/24 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
vue项目打包部署到服务器的方法示例
2018/08/27 Javascript
聊聊Vue中provide/inject的应用详解
2019/11/10 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
[43:58]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第一场 1月8日
2021/03/11 DOTA
Python中使用SAX解析xml实例
2014/11/21 Python
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
实例详解Python模块decimal
2019/06/26 Python
Python list运算操作代码实例解析
2020/01/20 Python
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
html5 冒号分隔符对齐的实现
2019/07/31 HTML / CSS
计划生育宣传标语
2014/06/21 职场文书
教育系统干部作风整顿心得体会
2014/09/09 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
vue+springboot实现登录验证码
2021/05/27 Vue.js
Go遍历struct,map,slice的实现
2021/06/13 Golang
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL