angular - 在选择元素中选择后如何更改单元格颜色?
问题描述
我正在尝试根据下拉菜单上选择的值更改表格中的某些单元格,下拉菜单中的这些值是在表格的单元格内随机分配的。
每个单元格值都有一个分配的类别,该类别等于单元格中的值。我想要它,以便当在下拉列表中选择该值时,与该值相关的单元格会改变颜色。到目前为止,我有:
app.coponent.html:
<div style="text-align: center">
<app-inputs (event)="getDataFromChild($event)"></app-inputs>
<p></p>
({{ colVal }}) cols and ({{ rowVal }}) rows
<p></p>
<select [(ngModel)]=val (ngModelChange)="value()">
<option value="One">One</option>
<option value="Two">Two</option>
<option value=" Three">Three</option>
<option value="Four">Four</option>
<option value="Five">Five</option>
</select>
<p></p>
<table style="border: 1px solid black;">
<thead>
<tr style="border: 1px solid black;" *ngFor="let row of tableData">
<td style="border: 1px solid black;" *ngFor="let column of row" class="{{ column }}">
{{ column | uppercase }}
</td>
</tr>
</thead>
</table>
app.component.ts:
import { Component, ViewChild, ElementRef } from '@angular/core';
import { NgModel } from '@angular/forms';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
colVal: number;
rowVal: number;
randStr: string;
randVal: any[] = [];
tableData: any[] = [];
randArr: any[] = ['One', 'Two', 'Three', 'Four', 'Five'];
val: string;
getDataFromChild(data) {
this.colVal = data.columns;
this.rowVal = data.rows;
this.getRnd();
}
getDataFromChildTwo(data) {
this.randVal = data;
console.log(this.randVal);
}
getRnd() {
this.tableData = [];
for (let i = 0; i < this.rowVal; i++) {
const values = [];
for (let j = 0; j < this.colVal; j++) {
const randNo = Math.floor(Math.random() * 4);
const storedVal = this.randArr[randNo];
values.push(storedVal);
}
this.tableData.push(values);
console.log(this.tableData);
}
}
value() {
console.log(this.val);
}
}
tl;dr - 我想更改下拉列表中包含所选选项的单元格的颜色,我现在有点失落!
解决方案
模板:
<td style="border: 1px solid black;"
*ngFor="let column of row"
class="{{column}}"
[ngClass]="{'selected': column == val }">
{{ column | uppercase }}
</td>
和CSS:
td.selected {
background-color: red;
}
编辑
@ClutchBleu 回答您的评论:column == vall
检查column
与单元格关联的每个值是否等于val
绑定到<select>
使用的值[(ngModel)]
推荐阅读
- android - 几天后删除房间数据库记录
- google-app-engine - Google Cloud Platform - App Engine - 无法停止和删除版本
- python - 按数据删除列
- android - 如何使用 Xamarin.forms 打开我的 Android 本机应用程序?
- llvm - LLVM IR 中的基本块似乎在汇编代码中被破坏
- python - 有没有一种简单的方法可以通过 python 从 S3 获取文件?
- vhdl - vhdl 程序中的指令模块如何工作?
- jquery - 编写自定义帖子类型分页插件
- html - 如何将产品类别列更改为 4?
- kubernetes - Tiller:拨打 tcp 127.0.0.1:80:连接:连接被拒绝