在我的Angularjs
应用中,我有一个项目列表,用户可以拖动每个项目。每个项目都是指令并将其命名为simple-element
:
app.directive('simpleElement',function(){
return {
restrict:'AE',
template:'<span>Item</span>',
controller:function(){
},
link:function(scope,element,attrs){
element.draggable({
revert:true,
helper:'clone'
});
}
}
});
现在我希望当用户拖动每个项目时,即使拖动成功与否,也可以拖动项目disabled
的事件,以便用户无法再次拖动项目。我在Plunker上创建了一个具有拖放功能的示例。
答案 0 :(得分:0)
我找到了解决方案。我不知道这是一个最佳实践,但它对我有用。我在link
函数中插入这些代码:
$scope.$watch('item.visible',function(){
//Enable Disableing when Item draged
if($scope.item.visible == false){
element.draggable( "disable" );
}
if($scope.levelModel.visible == true){
element.draggable( "enable" );
}
});
首先观察model.then的visible
属性,如果模型i中的属性更改决定启用或禁用该元素。