angular-ui-sortable实现拖拽功能

1. 引入文件

bower: bower install -S angular-ui-sortable
npm: npm install -S angular-ui-sortable
或直接下载;
注意:需要引入jquery-ui;
注意加载顺序:

<script src="bower_components/jquery/dist/jquery.min.js"></script>
<script src="bower_components/angular/angular.min.js"></script>
<script src="bower_components/jquery-ui/jquery-ui.min.js"></script>
<script src="bower_components/angular-ui-sortable/sortable.min.js"></script>
2. 示例
<!DOCTYPE HTML>
<html>
    <head>
		<meta charset="utf-8"/>
		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
		<meta name="viewport" content="initial-scale=1, maximum-scale=3, minimum-scale=1, user-scalable=no"/>
		<title>标题</title>
		<style>
			.box{
				margin: 0 auto; margin-top:100px;width:300px;
			}
			.item{
				width:300px;height:50px;line-height: 50px;cursor: pointer;border:1px solid #ccc;
			}
		</style>
    </head>
    <body ng-app="test" ng-controller="appCtrl">
		<div class="box" ui-sortable="sortHandle" ng-model="data">
			<div class="item" ng-repeat="item in data track by $index">
				{{item.name}} 的 排序是 {{item.order}}
			</div>
		</div>
		
		<script src="bower_components/jquery/dist/jquery.min.js"></script>
		<script src="bower_components/angular/angular.min.js"></script>
		<script src="bower_components/jquery-ui/jquery-ui.min.js"></script>
		<script src="bower_components/angular-ui-sortable/sortable.min.js"></script>
		
		<script>
			angular.module('test',["ui.sortable"])
			.controller('appCtrl', appCtrl);

			function appCtrl($scope){
				$scope.data = [
					{id : 1, name : '张三', order: 1},
					{id : 2, name : '李四', order: 2},
					{id : 3, name : '王五', order: 3},
					{id : 4, name : '赵六', order: 4}
				];

				$scope.sortHandle = {
					'ui-floating': true,
					start: function(){
						console.log('start');
						console.log($scope.data);
					},
					update: function(e, ui){
						console.log('update');
						console.log($scope.data);
					},
					stop: function(e, ui){
						console.log('stop');
						console.log($scope.data);
					}
				}
			}
		</script>
    </body>
</html>

在这里插入图片描述

3. 不同数据列拖拽

如图:
在这里插入图片描述
实现这个功能只需加上option:connectWith: “.类名”

示例:

<!DOCTYPE HTML>
<html>
    <head>
		<meta charset="utf-8"/>
		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
		<meta name="viewport" content="initial-scale=1, maximum-scale=3, minimum-scale=1, user-scalable=no"/>
		<title>标题</title>
		<style>
			.box{
				margin: 0 auto; margin-top:100px;width:300px;
			}
			.box1{
				 margin:-200px 0 0 150px;width:300px;
			}
			.item{
				width:300px;height:50px;line-height: 50px;cursor: pointer;border:1px solid #ccc;
			}
		</style>
    </head>
    <body ng-app="test" ng-controller="appCtrl">
		<div class="box apps-container" ui-sortable="sortHandle" ng-model="data1">
			<div class="item" ng-repeat="item in data1 track by $index">
				{{item.name}} 的 排序是 {{item.order}}
			</div>
		</div>
		<div class="box1 apps-container" ui-sortable="sortHandle" ng-model="data2">
			<div class="item" ng-repeat="item in data2 track by $index">
				{{item.name}} 的 排序是 {{item.order}}
			</div>
		</div>
		
		<script src="bower_components/jquery/dist/jquery.min.js"></script>
		<script src="bower_components/angular/angular.min.js"></script>
		<script src="bower_components/jquery-ui/jquery-ui.min.js"></script>
		<script src="bower_components/angular-ui-sortable/sortable.min.js"></script>
		
		<script>
			angular.module('test',["ui.sortable"])
			.controller('appCtrl', appCtrl);

			function appCtrl($scope){
				$scope.data1 = [
					{id : 1, name : '张三', order: 1},
					{id : 2, name : '李四', order: 2},
					{id : 3, name : '王五', order: 3},
					{id : 4, name : '赵六', order: 4}
				];

				$scope.data2 = [
					{id : 1, name : '张三', order: 1},
					{id : 2, name : '李四', order: 2},
					{id : 3, name : '王五', order: 3},
					{id : 4, name : '赵六', order: 4}
				];

				$scope.sortHandle = {
					connectWith: ".apps-container",  //这是关键
					start: function(){
						console.log('start');
						console.log($scope.data1);
						console.log($scope.data2);
					},
					update: function(e, ui){
						console.log('update');
						console.log($scope.data1);
						console.log($scope.data2);
					},
					stop: function(e, ui){
						console.log('stop');
						console.log($scope.data1);
						console.log($scope.data2);
					}
				}
			}
		</script>
    </body>
</html>

查看文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值