繁体   English   中英

隐藏角度ng-repeat的最后2条记录

[英]Hide last 2 records from angular ng-repeat

我有一个带有ng-repeat属性的表,该表填充了来自WS的数据,我隐藏了最后一条记录,因为我不需要使用ng-hide =“ $ last”。 现在对WS进行了更新,我需要隐藏最后2条记录,但是我不知道该怎么做。

我有这样的东西。

<table>
  <tr ng-repeat="d in exportData.result" ng-hide="$last">
     ...code....
  </tr>
</table>

任何帮助。

更换

d in exportData.result

至:

d in (exportData.result.slice(0, exportData.result.length-2))

另一种方法是在控制器中执行相同的操作。

我会从ng-repeat调用一个函数:

<table>
  <tr ng-repeat="d in getTruncatedArray()">
     ...code....
  </tr>
</table>

在您的控制器中:

$scope.getTruncatedArray = function() {
    return exportData.result.slice(0, exportData.result.length - 2));
}

说明

我建议您调用一个方法,而不是直接在HTML中编写“过滤器”。 调用方法将使您的HTML保持整洁 ,并使“过滤器” 易于更新/修改

为什么不对limitTo使用Angular的limitTo过滤器?

 <tr ng-repeat="d in exportData.result | limitTo:quantity">

然后在您的控制器中更新数量以反映您的新期望值

$scope.quantity = $scope.exportData.result.length - 2;

另一种肮脏的方式:)

<tr ng-repeat="d in exportData.result track by $index" ng-show="$index < exportData.result.length -2">
    ...code....
</tr>

不要忘了ng-show / hide创建dom元素,它只具有CSS可见性,并过滤您的数组,因为@nashter建议避免这种行为。

见小提琴

<div ng-controller="MyCtrl">
<div ng-repeat="line in lines">
<div class="preview" ng-hide="((lines.length-2)==$index)||($index==$last)">{{$index}}   </div>
</div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM