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 相关文章推荐
容易被忽略的JS脚本特性
Sep 13 Javascript
Area 区域实现post提交数据的js写法
Apr 22 Javascript
JavaScript中具名函数的多种调用方式总结
Nov 08 Javascript
JS实现往下不断流动网页背景的方法
Feb 27 Javascript
探索angularjs+requirejs全面实现按需加载的套路
Feb 26 Javascript
VueJs与ReactJS和AngularJS的异同点
Dec 12 Javascript
解析Vue.js中的组件
Feb 02 Javascript
Node.js上传文件功能之服务端如何获取文件上传进度
Feb 05 Javascript
详解django模板与vue.js冲突问题
Jul 07 Javascript
Node.js API详解之 zlib模块用法分析
May 19 Javascript
JS性能优化实现方法及优点进行
Aug 30 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
Oct 19 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生成静态页
2006/11/25 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
PHP中strlen()和mb_strlen()的区别浅析
2014/06/19 PHP
php实现encode64编码类实例
2015/03/24 PHP
老生常谈PHP位运算的用途
2017/03/12 PHP
php用xpath解析html的代码实例讲解
2019/02/14 PHP
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
2007/03/06 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
node.js中的fs.lchown方法使用说明
2014/12/16 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
关于验证码在IE中不刷新的快速解决方法
2016/09/23 Javascript
浅谈Web页面向后台提交数据的方式和选择
2016/09/23 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
js 两个日期比较相差多少天的实例
2017/10/19 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
Python使用代理抓取网站图片(多线程)
2014/03/14 Python
Python中的Classes和Metaclasses详解
2015/04/02 Python
Python回调函数用法实例详解
2015/07/02 Python
Collatz 序列、逗号代码、字符图网格实例
2017/06/22 Python
Python 实现12306登录功能实例代码
2018/02/09 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
CSS3中线性颜色渐变的一些实现方法
2015/07/14 HTML / CSS
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
学校出纳员岗位职责
2014/03/18 职场文书
实习单位鉴定评语
2014/04/26 职场文书
科长竞争上岗演讲稿
2014/05/12 职场文书
实验室标语
2014/06/21 职场文书
2014年德育工作总结
2014/11/20 职场文书
法人身份证明书
2015/06/18 职场文书
导游词之湖北武当山
2019/09/23 职场文书
能让Python提速超40倍的神器Cython详解
2021/06/24 Python
javascript之Object.assign()的痛点分析
2022/03/03 Javascript
深入讲解Vue中父子组件通信与事件触发
2022/03/22 Vue.js