我必须在我的应用程序中添加即将到来的类(class)和过去的类(class)组件。我能够存储类(class)表,然后使用来自后端的服务获取它们,但我只想在即将到来的类(class)组件中显示即将到来的类(class),并在过去的类(class)组件中显示过去的类(class)。这是我到目前为止所做的。我如何比较这些类,然后将它们从我在前端获得的 json 列表中删除
html
<tbody>
<tr *ngFor = "let completeData of schedule">
<td class="trim">{{completeData.date | date}}</td>
<td class="trim">{{completeData.course}}</td>
<td class="trim">{{completeData.location}}</td>
<td class="trim">{{completeData.instructor}}</td>
<td class="trim"><nb-checkbox [(ngModel)]="completeData.listing"></nb-checkbox></td>
<td class="trim">
<nb-select>
<nb-option value="2">Edit</nb-option>
<nb-option value="3">Delete</nb-option>
<nb-option value="4" (click)="viewDetails()">View</nb-option>
</nb-select>
</td>
</tr>
</tbody>
component.ts 文件
schedule: ClassSchedule = new ClassSchedule();
ngOnInit() {
this._classService.GetClassData()
.subscribe((result: any) => {
this.schedule = result;
})
}
日程安排界面
export interface IClassSchedule {
course: string | undefined;
date: string | undefined;
hour: string | undefined;
minute: string | undefined;
timeofday: string | undefined;
totalHours: string | undefined;
//Other fields not added here
}
最佳答案
您可以使用 partition将其拆分为两个可观察对象。
ngOnInit() {
const currentTimestamp = Date.now();
const [futureCourses$, pastCourses$] = this._classService.GetClassData()
.pipe(partition( item => item.timestamp > currentTimestamp ));
futureCourses$.subscribe((result) => {
// Here is the future ones
})
pastCourses$.subscribe((result) => {
// Here is the past ones
})
}
该示例假设您可以获取时间戳,以便于比较。如果你拿不到,那你可以用moment以便于比较。
关于javascript - 如果日期是过去或将来,则删除 json 特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58569823/