我有一个按属性“ age”和“ name”排序的表,但是我有一个行计数器(counterR),它显示表中的行数。
我想在OrderBy上排除此商品,因为它也已订购,我需要它是静态的并且始终订购,但我不能。
我的问题有Plunker链接:http://plnkr.co/edit/MJYayUANphxksbGkyEcj?p=preview

HTML:

  <body ng-controller="MainCtrl">
    <table border="0">
    <thead>
      <tr>
      <th>#</th>
      <th>ID</th>
      <th ng-click="sortType = 'name';sortReverse=!sortReverse">NAME</th>
      <th ng-click="sortType = 'age';sortReverse=!sortReverse">AGE</th>
      </tr>
    </thead>
    <tbody>
      <tr ng-init="counterR=incrementCounter()" ng-repeat="item in items | orderBy:sortType:sortReverse">
      <td>{{counterR}}</td>
      <td>{{item.id}}</td>
      <td>{{item.name}}</td>
      <td>{{item.age}}</td>
      </tr>
    </tbody>
    </table>


JS:

 $scope.items = [
    {"name":"Jhon","id":"BB1","age":23},
    {"name":"Austin","id":"BB2","age":44},
    {"name":"Mark","id":"BB3","age":56},
    {"name":"Jenn","id":"BB4","age":15}
    ];
    var counterRow = 0;
    $scope.incrementCounter = function(){
      counterRow = counterRow + 1;
      return counterRow;
    }

最佳答案

而不是将行号与数据一起存储-之所以行不通,是因为行号不是特定于数据行,而是特定于显示位置,您将需要“即时”计算值。在ng-repeat的范围内,可以使用特殊的$index变量执行此操作。也就是说,代替

<td>{{counterR}}</td>


从数据行中读取一个值,您将使用

<td>{{$index+1}}</td>


(假设序号从1开始)

关于javascript - 排除表中OrderBy上的项目-AngularJS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45018502/

10-11 06:03