Индекс в порядке убывания - PullRequest
0 голосов
/ 04 марта 2019

Моя таблица содержит индексный номер, и когда я добавляю новую строку, она должна показывать мне в 2,1,0, мне нужно текущее значение в верхнем индексном номере 2. Согласно моему коду, он работает 0,1,2.Но мне это нужно в 2,1,0.

Это мой HTML-файл `

<mat-table #table [dataSource]="dataSource"  *ngFor="let field of fieldArray | reverse; let i = index " [attr.data-index]="i" >                 
<ng-container matColumnDef="SrNo">
<mat-header-cell *matHeaderCellDef> No. </mat-header-cell>
<mat-cell *matCellDef="let element" >                 
<div>{{i}}</div>
</mat-cell>
</ng-container>

Вот мой код канала

import {Pipe, PipeTransform} from '@angular/core';
@Pipe({
  name: 'reverse',
  pure: false
})
export class ReversePipe implements PipeTransform {

transform (values) {
    return values.reverse();
  }
}

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Вы можете напрямую отсортировать массив "fieldArray", который вам не нужен, чтобы использовать канал.

fieldArray.sort((a, b) => a < b? 1 : 0);
0 голосов
/ 04 марта 2019

Поскольку кажется, что вы просто хотите, чтобы индекс переворачивался, а не элементы, вместо использования reverse и отображения i напрямую, вы можете сделать:

[attr.data-index]="fieldArray.length - i"

и

<div>{{fieldArray.length - i}}</div>

Таким образом вы получите ..., 2,1,0 вместо 0,1,2 ...

...