簡體   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