/ / Wie man <td> s in Angularjs in bestimmten Zeilen versteckt, wenn man ng-repeat verwendet - Javascript, Angularjs, Angularjs-Direktive, ng-repeat

Wie man <td> s in Angularjs in bestimmten Zeilen versteckt, wenn man ng-repeat verwendet - Javascript, Angularjs, Angularjs-Direktive, ng-repeat

Ich habe einen Tisch und viele <td>s zuerst <tr> </tr> ich benutze ng-Wiederholung

  <tr ng-repeat="receipt in $data">
<td   data-title="voucher number">
<span>{{receipt.voucher_no}}</span>
</td>
<td   data-title="voucher date" sortable=""voucher_date"" filter="{"voucher_date": "text" }">
<span>{{receipt.voucher_date}}</span>
</td>
<td   data-title="voucher Amount">
<span>{{receipt.voucher_amount}}</span>
</td>
</tr>

Ich habe auch JSON-Daten wie

{
"data": [
{
"voucher_no": "2",
"voucher_amount": "100",
"voucher_date": "2014-05-04",
},
{
"voucher_no": "3",
"voucher_amount": "1000000",
"voucher_date": "2014-02-05",
},
{
"voucher_no": "4",
"voucher_amount": "50000",
"voucher_date": "2014-02-05",
},
.
.
.
.
{
"total": 1360100
}
]
}

please note that for final data there is only one field "total".

Also für alle Zeilen, die ich drucken möchte 3 <td>s mit Ausnahme der in der letzten Reihe.

Antworten:

5 für die Antwort № 1
<tr ng-repeat="receipt in $data | filter:{voucher_date: "2014-05-04"}">
<!-- Voucher No -->
<td ng-if="!$last"
data-title="voucher number">
<span>{{receipt.voucher_no}}</span>
</td>

<!-- Voucher Date -->
<td ng-if="!$last"
data-title="voucher date">
<span>{{receipt.voucher_date}}</span>
</td>

<!-- Voucher Amount -->
<td ng-if="!$last"
data-title="voucher Amount">
<span>{{receipt.voucher_amount}}</span>
</td>

<!-- Total Column -->
<td ng-if="$last"
colspan="3"
data-title="Total">
<span>{{receipt.total}}</span>
</td>
</tr>

Der obige Filter zeigt nur die Datensätze an, für die das Datum dem angegebenen Datum entspricht.

Wenn Sie alle Datensätze zwischen zwei Daten anzeigen möchten, müssen Sie eine Funktion als Filter angeben: | filter:filter_between_date und in Ihrem Controller müssen Sie diese Funktion erstellen:

$scope.from_date = "2014-05-04"; // 04 May
$scope.to_date = "2014-05-10"; // 10 May
$scope.filter_between_date = function(item) {
var item_date = new Date(item.voucher_date).getTime();

if(item_date >= (new Date($scope.from_date).getTime()) &&
item_date <= (new Date($scope.to_date).getTime()) {
return true;
}

return false;
};

Winkelfilter docs

Angular ngIf-Direktive docs

Angular ngRepeat $ last-Eigenschaft


2 für die Antwort № 2

Benutzen :

  <tr ng-repeat="receipt in $data">
<td   data-title="voucher number" ng-hide="$index == $data.length - 1">
<span>{{receipt.voucher_no}}</span>
</td>
<td   data-title="voucher date" ng-hide="$index == $data.length - 1">
<span>{{receipt.voucher_date}}</span>
</td>
<td   data-title="voucher Amount">
<span>{{receipt.voucher_amount}}</span>
</td>
</tr>

Die Variable $ index speichert die Position des wiederholten Elements in der ursprünglichen Liste.