如何将颜色代码转换为实际颜色

How to convert color code into actual color

我在我的项目中使用 Angular material 和 Angular6。我想要做的是将存储在数据库中的颜色代码转换为我 mat-table.

中的实际颜色

目前,我的table如下,

这就是我从 component.ts 文件中获取可见列数据的方式,

getIssueCategory() {
  this.IssueService.getAllIssueCategories().subscribe(result => {
      this.issueCategoryDTOList = result.reverse();

      //updating data source
      this.updatingDataSource(result);

      this.IssueService.issueCategoryDTOList = result;
    }
  );
}

get visibleColumns() {
  return this.displayedColumns.filter(column => column.visible).map(column => column.property);
}

applyFilter(filterValue: string) {
  this.dataSource.filter = filterValue.trim().toLowerCase();
}

我的HTML文件中的颜色栏如下,

<!-- color Column -->
    <ng-container matColumnDef="color">
      <mat-header-cell *matHeaderCellDef mat-sort-header="color" style="max-width: 25%; min-width: 25%;">COLOR
      </mat-header-cell>
      <mat-cell *matCellDef="let element" style="text-transform: uppercase; max-width: 25%; min-width: 25%;">
        {{element.color}}
      </mat-cell>
    </ng-container>

最后,为了更容易理解,我使用 photoshop 设计了预期的输出,

PS: 在我的数据库中,颜色存储为颜色代码。

你可以简单地做一些像 -

<!-- color Column -->
<ng-container matColumnDef="color">
   <mat-header-cell *matHeaderCellDef mat-sort-header="color" style="max-width: 25%; min-width: 25%;">COLOR
   </mat-header-cell>
   <mat-cell *matCellDef="let element" style="text-transform: uppercase; max-width: 25%; min-width: 25%;">
     <div style="width: 15px; height: 15px" [style.background-color]="element.color">/div>
   </mat-cell>
</ng-container>

或者更好的方法是将它变成一个组件

@Component({
  selector: 'app-color-swatch',
  template: `<div [style.background-color]="colorCode"></div>`,
  styles: ['div { height: 15px; width: 15px }']
})
export class ColorSwatchComponent {

  @Input colorCode: string;

}

然后 -

<app-color-swatch [color]="element.color"></app-color-swatch>

试试这个:

<input matInput type="color" value="color from Database">

示例:

<input matInput type="color" value="#904A91">

您需要做的就是使用 css 创建一个正方形并将您的 color 动态应用到元素作为 background-color

在 table 中显示颜色的位置,添加一个 div,我们将使用 css 将其样式设置为正方形。然后像下面这样设置背景颜色。

<ng-container matColumnDef="color">
  <mat-header-cell *matHeaderCellDef mat-sort-header="color" style="max-width: 25%; min-width: 25%;">COLOR</mat-header-cell>
  <mat-cell *matCellDef="let element">
    <div class="square" [style.background-color]="element.color">
    </div>
  </mat-cell>
</ng-container>

在你的css

.square {
  /* Specify the dimensions of your square here */
  height: 25px;
  width: 25px;
}