Я создал флажок в своем шаблоне, чтобы скрыть все элементы, которые были выполнены ранее, чем сегодня, в зависимости от bookingEnd
в моих данных JSON. Канал recent-filter.pipe.ts
должен фильтровать все прошлые события.
В моей проблеме я заранее получаю error TS2365: Operator '>' cannot be applied to types 'number' and 'Date'.
в канале, и в моем шаблоне не отображаются данные. Весь сценарий работает на чистом JavaScript, поэтому я думаю, что bookingEnd
определенно является объектом даты.
Можете ли вы помочь мне, почему нет данных после применения фильтра канала?
Данные JSON:
{
bookingStart: "2019-10-27T23:00:00.000Z",
bookingEnd: "2019-12-29T23:00:00.000Z",
city: "Manhattan",
confirmed: false,
country: "UK"
}
Recent-filter.pipe.ts:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'recentFilter'
})
export class RecentFilterPipe implements PipeTransform {
transform(list: any[], checked: boolean) {
if (checked) {
const futureDates = list.filter(x => {
return Date.parse(x.bookingEnd) > new Date();
});
return futureDates;
} else {
return list;
}
}
}
bookings-table.component.html:
<tr
*ngFor="
let item of bookings
| recentFilter: checked
">
...
</tr>