jquery - AngularJS - ui-sortable - 如何禁用对可排序列表中的一项进行排序?

标签 jquery angularjs jquery-ui angular-ui

这是一个Plunker example 。 [根据以下答案更新了 plunk]

Updated Plunk

如何仅对一两个项目禁用排序。例如,项目 1 和项目 3,因此用户无法移动这两个项目?

我试过了

   $scope.sortableOptions = {
       disabled:true,
   };

在 sortableOptions 中,但这会禁用对整个列表的排序。

我正在寻找类似的东西

  <div ui-sortable="sortableOptions" ng-model="list">    
  <div ng-repeat="item in list">    
    <div ng-switch on="item.text">    

      <div ng-switch-when="Item 1" >    
        <div ui-sortable="sortableOptions.disabled=true">{{item.text}} - Sorting disabled</div>    
      </div>  

     <div ng-switch-default>    
        <div>{{item.text}} - Sorting enabled</div>    
      </div>  

    </div>    
  </div>    
</div>

谢谢。

最佳答案

您可以为不应拖动的项目配置一个类:

$scope.sortableOptions = {
cancel: ".unsortable",

然后有条件地在 ngRepeat 中添加该类:

<ul ui-sortable="sortableOptions" ng-model="list" class="list">
  <li ng-repeat="item in list" class="item"  
      ng-class="{'unsortable': item.text == 'Item 2'}">
    {{item.text}}

更新
您可以阻止该项目被排序,如 this :

$scope.sortableOptions = {
cancel: ".unsortable",
items: "li:not(.unsortable)",

关于jquery - AngularJS - ui-sortable - 如何禁用对可排序列表中的一项进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22641536/

相关文章:

jquery - 删除应用训练属性

javascript - AngularJS 常量

javascript - jquery 可拖动和可调整大小不能在动态生成的元素中一起工作

ajax - YouTube搜索自动完成功能不适用于Framework 7

jQuery:在这种情况下如何选择属性?

javascript - 主干/下划线 js "too much recursion"和 "Inspect target crashed"错误

javascript - AngularJS 和 Django 权限

javascript - jQuery datePicker 中的奇怪行为

Javascript刷新另一个页面

javascript - 如何有条件地更改 Angular 中的 orderBy 参数?