Я застрял и мне нужна помощь.
У меня есть таблица с именем столбца deadLine
.
Данные получены из MySQL и имеют свойства DATETIME
.Я создал функцию, которая проверяет, прошла ли дата в столбце сегодняшняя дата.Теперь я хочу, чтобы при условии true
этот конкретный элемент в таблице был красного цвета.
Это мой компонент:
import { Component, ViewChild, OnInit } from '@angular/core';
import { ReportsService } from '../../../../core/services/reports.service';
import { Reports } from 'src/app/shared/entity/reports.entity';
import { MatTableDataSource, MatPaginator, MatPaginatorIntl } from '@angular/material';
import { Utils } from '../../../../shared/utils';
import { formatDate } from '@angular/common';
@Component({
selector: 'app-reports',
templateUrl: './reports.component.html',
styleUrls: ['./reports.component.sass'],
providers: [
{ provide: MatPaginatorIntl, useValue: Utils.hebrewPaginator() }
]
})
export class ReportsComponent implements OnInit {
public dataSource: MatTableDataSource<Reports>;
public displayedColumns: string[] = ['deadLine', 'year', 'type', 'companyID', 'companyName'];
@ViewChild('paginator', { read: MatPaginator, static: false }) paginator: MatPaginator;
filterBool: Boolean;
dataForFilter: Array<Reports>;
constructor(private service: ReportsService) { }
ngOnInit() {
this.service.getReports((data) => this.onGetReportsList(data));
}
onGetReportsList(data) {
data.map((report) => {
const format = 'yyyy.MM.dd';
const locale = 'en-US';
report.deadLine = formatDate(report.deadLine, format, locale);
const repDate = new Date(report.deadLine).getTime();
const nowDay = new Date().getTime();
if (nowDay > repDate) {
report.deadLine += '*';
}
});
this.dataForFilter = data;
this.dataSource = new MatTableDataSource<Reports>(data);
this.dataSource.paginator = this.paginator;
}
}
Это файл HTML.
<div class="container">
<div class="flex-menu">
<app-home-menu (filterEvent)="applyFilter($event)" [dataSource]="dataSource"></app-home-menu>
</div>
<div class="mat-elevation-z8">
<table mat-table [dataSource]="dataSource">
<ng-container matColumnDef="companyName">
<th mat-header-cell *matHeaderCellDef> CompanyNme </th>
<td mat-cell *matCellDef="let element"> {{element.companyName}} </td>
</ng-container>
<ng-container matColumnDef="companyID">
<th mat-header-cell *matHeaderCellDef> HP </th>
<td mat-cell *matCellDef="let element"> {{element.companyID}} </td>
</ng-container>
<ng-container matColumnDef="type">
<th mat-header-cell *matHeaderCellDef> Type </th>
<td mat-cell *matCellDef="let element"> {{ element.name}} </td>
</ng-container>
<ng-container matColumnDef="year">
<th mat-header-cell *matHeaderCellDef> Year </th>
<td mat-cell *matCellDef="let element"> {{element.year}} </td>
</ng-container>
<ng-container matColumnDef="deadLine">
<th mat-header-cell *matHeaderCellDef> DeadLine </th>
<td mat-cell *matCellDef="let element"> {{element.deadLine}} </td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
<mat-paginator #paginator [pageSizeOptions]="[10, 20, 30]" [showFirstLastButtons]="true"></mat-paginator>
</div>
</div>