0

我有一个带有可排序 [可拖动行] 的 ng 表。但是,当拖动一行时,有时新索引不正确。

代码:

<table class="table table-striped table-hover" data-ng-table="vm.tableParams" data-export-csv="csv">
  <tbody row-sortable="vm.items"  data-ui-sortable="" data-ng-model="vm.items" >
  <tr data-ng-repeat ="item in vm.items | filter: vm.searchInput">
   <td data-title="'Index'" style="white-space: nowrap; width: 35px;">
    <div style="padding-left: 10px;"> {{$index +1}} </div>                      
   </td> 
 </tr>
   ....

 </table>

前:

在此处输入图像描述

后:

在此处输入图像描述

如您所见,将项目 2 拖到列表底部后,虽然它的 ($index+1) 索引应该是 8,但它有 7,而项目 8 应该有一个索引 7 它有 8。

我知道这不是我的代码,因为我在角度拖动上尝试了很多其他人的 plunker,并且索引有时也不正确。我不知道这是一个错误还是什么。

尽管如此,我想也许可以对变更单执行 $watch,然后遍历列表中的项目并分配一个新的索引值。

谁能建议合适的代码?

4

1 回答 1

1

而不是依赖 $index 编写一个从数组中返回元素索引的函数。

在那里的平板电脑上,所以无法完全回应。在你的控制器中基本上是这样的:

$scope.getIndex = function(item){
  return $scope.myModel..sourceArray.indexOf(item);
}

然后在你的 HTML

<div ng-repeat="someItem in myModel.sourceArray>{{getIndex(someItem)}}</div>
于 2014-05-29T15:37:14.963 回答