angularjs結合html5實現(xiàn)拖拽功能
更新時間:2018年06月25日 08:45:24 作者:愛喝酸奶的吃貨
本篇文章給大家分享了angularjs結合html5實現(xiàn)拖拽功能的方法以及代碼實例,有興趣的朋友參考下。
先來 看看具體效果:

實現(xiàn)方法:
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("當前節(jié)點:->", item);
//調用后端添加接口,實現(xiàn)真實的添加。
},
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>
希望可以對大家有所幫助哦。好久都沒寫博客啦,嘻嘻最近變懶了,而且特別懶,哈哈哈哈,天熱啦,大家多喝水哦,注意防暑。
相關文章
Angular2里獲?。╥nput file)上傳文件的內容的方法
這篇文章主要介紹了Angular2里獲?。╥nput file)上傳文件的內容的方法,非常具有實用價值,需要的朋友可以參考下2017-09-09
詳解Angular中通過$location獲取地址欄的參數(shù)
這篇文章主要介紹了詳解 Angular中通過$location獲取地址欄的參數(shù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08
Angular中innerHTML標簽的樣式不起作用的原因解析
這篇文章主要介紹了Angular中innerHTML標簽的樣式不起作用詳解 ,本文給出了解決方案,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-06-06

