Если у вас есть "модель" для отчета (конечно, с именем свойства и идентификатором), ваш канал должен выглядеть следующим образом:
import { Pipe, PipeTransform } from "@angular/core";
import { Report } from 'myModels/report'
@Pipe({
name: "sort"
})
export class ArraySortPipe {
transform(array: Array<Report>, args: string): Array<Report> {
array.sort((a: Report, b: Report) => {
if (a.name < b.name) {
return -1;
} else if (a.name > b.name ) {
return 1;
} else {
return 0;
}
});
return array;
}
}
В вашем коде ваш канал принимает массив строк, но в вашем шаблоневаше использование «report.id» не логично.
Если у вас нет модели отчета, просто измените отчет на {id: номер, имя: строка ...}
Далее вы отправляете трубкуделает огромные изменения в зависимости от размера массива, возможно, вы должны сделать его «чистым» для лучшей производительности.
@Pipe({
name: "sort",
pure : true
})
https://angular.io/guide/pipes#pure-pipes