angularjs结合html5实现拖拽功能


Posted in Javascript onJune 25, 2018

先来 看看具体效果:

angularjs结合html5实现拖拽功能

实现方法:

1.下载并引入 angularjs

2.HTML代码:

<!DOCTYPE html>
<html lang="en" ng-app="test">
<head>
  <meta charset="UTF-8">
  <title>Html5 拖拽行为和AngularJs的结合</title>
  <meta charset="utf-8"/>
  <script type="text/javascript" src="js/angular.js"></script>
  <style>
    .to-drag, .drag-stop {
      display: inline-block;
    }
  </style>
</head>
<body ng-controller="main">
<div class="to-drag">
  <ul>
    <li ng-repeat="item in list.data" ng-include="'./lefttree.html'"></li>
  </ul>
</div>
<div class="drag-stop">
  <ul>
    <li ng-repeat="item in rightList.data" ng-include="'./righttree.html'"></li>
  </ul>
</div>
</body>
</html>

3.js

<script type="text/javascript">
  let mod = angular.module("test", []);
  mod.controller("main", ['$scope', function ($scope) {
    $scope.list = {
      data: [{
        id: 1,
        name: '22',
        child: [{
          id: '1-1',
          name: '1-1_name-左'
        }, {
          id: '1-2',
          name: '1-2_name-左'
        }]
      }],
      dragstart: function (item) {
        $scope.clientInfo = item;
      }
    }
    $scope.rightList = {
      data: [{
        id: 1,
        name: '停止拖动',
        child: [{
          id: '1-1',
          name: '1-1_name-右'
        }, {
          id: '1-2',
          name: '1-2_name-右'
        }]
      }],
      drop: function (event, item) {
        event.preventDefault();
        console.log("被拖动的元素:->", $scope.clientInfo);
        console.log("当前节点:->", item);
        //调用后端添加接口,实现真实的添加。
      },
      dragover: function (event) {
        event.preventDefault();
      }
    }
  }]);
  var convertFirstUpperCase = function (str) {
    return str.replace(/(\w)/, function (s) {
      return s.toUpperCase();
    });
  };
  rubyDragEventDirectives = {};
  angular.forEach("dragstart drag dragenter dragover drop dragleave dragend".split(' '), function (eventName) {
    var rubyEventName = 'ruby' + convertFirstUpperCase(eventName);
    rubyDragEventDirectives[rubyEventName] = ['$parse', function ($parse) {
      //$parse 语句解析器
      return {
        restrict: 'A',
        compile: function (ele, attr) {
          var fn = $parse(attr[rubyEventName]);
          return function rubyEventHandler(scope, ele) {
            ele[0].addEventListener(eventName, function (event) {
              if (eventName == 'dragover' || eventName == 'drop') {
                event.preventDefault();
              }
              var callback = function () {
                fn(scope, {event: event});
              };
              callback();
            });
          }
        }
      }
    }]
  });
  mod.directive(rubyDragEventDirectives);
</script>

希望可以对大家有所帮助哦。好久都没写博客啦,嘻嘻最近变懒了,而且特别懒,哈哈哈哈,天热啦,大家多喝水哦,注意防暑。

Javascript 相关文章推荐
超级兔子让浮动层消失的前因后果
Mar 09 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
Sep 25 Javascript
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
Dec 05 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
Jul 18 Javascript
JS组件Bootstrap导航条使用方法详解
Apr 29 Javascript
javascript 数组的定义和数组的长度
Jun 07 Javascript
jQuery向父辈遍历的简单方法
Sep 18 Javascript
node通过npm写一个cli命令行工具
Oct 12 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
Mar 01 Javascript
vue 简单自动补全的输入框的示例
Mar 12 Javascript
解决angular2在双向数据绑定时[(ngModel)]无法使用的问题
Sep 13 Javascript
基于axios 的responseType类型的设置方法
Oct 29 Javascript
vue中vee validate表单校验的几种基本使用
Jun 25 #Javascript
超出JavaScript安全整数限制的数字计算BigInt详解
Jun 24 #Javascript
JS的函数调用栈stack size的计算方法
Jun 24 #Javascript
JavaScript中var、let、const区别浅析
Jun 24 #Javascript
使用JavaScript中的lodash编写双色球效果
Jun 24 #Javascript
Vue中$refs的用法详解
Jun 24 #Javascript
JS实现获取word文档内容并输出显示到html页面示例
Jun 23 #Javascript
You might like
怎样才能成为PHP高手?学会“懒惰”的编程
2006/12/05 PHP
PHP 作用域解析运算符(::)
2010/07/27 PHP
PHP学习笔记之二 php入门知识
2011/01/12 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
2011/12/19 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
2012/09/04 PHP
php5.3 goto函数介绍和示例
2014/03/21 PHP
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
2015/02/16 PHP
PHP实现HTTP断点续传的方法
2015/06/17 PHP
javascript静态的url如何传递
2007/05/03 Javascript
奇妙的js
2007/09/24 Javascript
JavaScript类库D
2010/10/24 Javascript
JS正则中的RegExp对象对象
2012/11/07 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
浅谈javascript构造函数与实例化对象
2015/06/22 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
js判断手机号是否正确并返回的实现代码
2017/01/17 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
vue resource发送请求的几种方式
2019/09/30 Javascript
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
Python探索之SocketServer详解
2017/10/28 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
python实现数据分析与建模
2019/07/11 Python
Python的条件锁与事件共享详解
2019/09/12 Python
浅谈SciPy中的optimize.minimize实现受限优化问题
2020/02/29 Python
python 瀑布线指标编写实例
2020/06/03 Python
《桃花心木》教学反思
2014/02/17 职场文书
婚礼司仪主持词
2014/03/14 职场文书
社区文化建设方案
2014/05/02 职场文书
委托书的格式
2014/08/01 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
会计手工模拟做账心得体会
2016/01/22 职场文书
2019年大学生暑期社会实践调查报告模板
2019/11/07 职场文书
Python Pandas常用函数方法总结
2021/06/15 Python
《堡垒之夜》联动《刺客信条》 4月7日正式上线
2022/04/06 其他游戏