Angularjs ui树中的连接树防拖放
我正在使用我正在使用: 我希望能够在树的父级上拖动,但不能在子级上拖动 我该怎么做呢。我现在正在使用他们的代码,我可以放在这里 html 谢谢 **我试过的** 这就是我试过的Angularjs ui树中的连接树防拖放,angularjs,tree,angularjs-scope,angular-ui-tree,angular-dragdrop,Angularjs,Tree,Angularjs Scope,Angular Ui Tree,Angular Dragdrop,我正在使用我正在使用: 我希望能够在树的父级上拖动,但不能在子级上拖动 我该怎么做呢。我现在正在使用他们的代码,我可以放在这里 html 谢谢 **我试过的** 这就是我试过的 $scope.tree2Options = { beforeDrop : function (e) { //console.log("sent from tree 2"); var destValue = e.dest.nodesScope.node
$scope.tree2Options = {
beforeDrop : function (e) {
//console.log("sent from tree 2");
var destValue = e.dest.nodesScope.node ? e.dest.nodesScope.node.value : "pata nehi";
//console.log(destValue);
},
accept: function(sourceNodeScope, destNodesScope, destIndex) {
//console.log("tree 2 before accepting ");
console.log(destNodesScope.$element.attr('data-type'));
return true
}
};
然后
<div class="col-sm-6">
<h3>Tree 2</h3>
<div data-ui-tree="tree2Options" id="tree2-root">
<ol ui-tree-nodes="" ng-model="tree2" data-type="{{tree2.id}}">
<li ng-repeat="node in tree2" ui-tree-node ng-include="'nodes_renderer2.html'"></li>
</ol>
</div>
</div>
好的,经过一定的尝试和错误后,我找到了答案 这就是我所做的..我在html中创建了上面建议的数据类型
<div class="col-sm-6">
<h3>Tree 2</h3>
<div data-ui-tree="tree2Options" id="tree2-root">
<ol ui-tree-nodes="tree2Nodes" ng-model="tree2" >
<li ng-repeat="node in tree2" ui-tree-node ng-include="'nodes_renderer2.html'" data-type="{{node.allowed}}"></li>
</ol>
</div>
</div>
</div>
现在工作
谢谢
<div class="col-sm-6">
<h3>Tree 2</h3>
<div data-ui-tree="tree2Options" id="tree2-root">
<ol ui-tree-nodes="" ng-model="tree2" data-type="{{tree2.id}}">
<li ng-repeat="node in tree2" ui-tree-node ng-include="'nodes_renderer2.html'"></li>
</ol>
</div>
</div>
accept: function(sourceNodeScope, destNodesScope, destIndex) {
//console.log("tree 2 before accepting ");
console.log(destNodesScope.$element.attr('data-type'));
if(destNodesScope.$element.attr('data-type') != 'undefined'){
//return true
console.log("true");
return true;
}else{
console.log("flase");
return false;
}
}
<div class="col-sm-6">
<h3>Tree 2</h3>
<div data-ui-tree="tree2Options" id="tree2-root">
<ol ui-tree-nodes="tree2Nodes" ng-model="tree2" >
<li ng-repeat="node in tree2" ui-tree-node ng-include="'nodes_renderer2.html'" data-type="{{node.allowed}}"></li>
</ol>
</div>
</div>
</div>
accept: function(sourceNodeScope, destNodesScope, destIndex) {
var allowed = false;
angular.forEach(destNodesScope.$element[0].children, function (item) {
var attr_allowed = item.attributes['data-type'] && item.attributes['data-type'].value ? item.attributes['data-type'].value : false;
if(attr_allowed && attr_allowed=="allowed" ){
allowed = true;
}
});
return allowed;
},