Javascript 具有NG样式的Notiffy用户表示已进行更改

Javascript 具有NG样式的Notiffy用户表示已进行更改,javascript,angular,angular-material,mat-table,Javascript,Angular,Angular Material,Mat Table,我有一个带有可编辑输入字段的mat表。我正在使用[sytle.color]将颜色更改为红色,以提醒用户保存这些更改。然而,我一次只能将css更改为一行,它正在执行整行。更改时,将每个特定项目更改为红色的最佳方式是什么。这也是通知用户更改的最佳实践吗?以下是完整的代码: HTML TS 我创建了一个保存的数组:boolean[];当进行更改时,存储字段状态(保存或未保存)的已保存[changeRow][changeCol]=false;。然后查看保存的[element.position][I]的

我有一个带有可编辑输入字段的mat表。我正在使用[sytle.color]将颜色更改为红色,以提醒用户保存这些更改。然而,我一次只能将css更改为一行,它正在执行整行。更改时,将每个特定项目更改为红色的最佳方式是什么。这也是通知用户更改的最佳实践吗?以下是完整的代码:

HTML

TS

我创建了一个保存的数组:boolean[];当进行更改时,存储字段状态(保存或未保存)的已保存[changeRow][changeCol]=false;。然后查看保存的[element.position][I]的颜色。 以下是我补充的内容:

ngOnInit(){
    this.saved = [];
    for(var i: number = 0; i < 11; i++) {
      this.saved[i] = [];
      for(var j: number = 0; j< 11; j++) {
        this.saved[i][j] = true;
      }
    }
  }
edit(element, col){
    this.saved[element.position][col]=false;
}

我还添加了一个保存按钮,我只是将保存的[][]数组重置为all true

如果您没有按顺序列出它们的属性,请使用索引,阅读有关它们的信息。这是表索引
const ELEMENT_DATA: PeriodicElement[] = [
  {position: 1, name: 'Hydrogen', weight: 1.0079, symbol: 'H'},
  {position: 2, name: 'Helium', weight: 4.0026, symbol: 'He'},
  {position: 3, name: 'Lithium', weight: 6.941, symbol: 'Li'},
  {position: 4, name: 'Beryllium', weight: 9.0122, symbol: 'Be'},
  {position: 5, name: 'Boron', weight: 10.811, symbol: 'B'},
  {position: 6, name: 'Carbon', weight: 12.0107, symbol: 'C'},
  {position: 7, name: 'Nitrogen', weight: 14.0067, symbol: 'N'},
  {position: 8, name: 'Oxygen', weight: 15.9994, symbol: 'O'},
  {position: 9, name: 'Fluorine', weight: 18.9984, symbol: 'F'},
  {position: 10, name: 'Neon', weight: 20.1797, symbol: 'Ne'},
];


@Component({
  selector: 'table-selection-example',
  styleUrls: ['table-selection-example.css'],
  templateUrl: 'table-selection-example.html',
})
export class TableSelectionExample {
  displayedColumns: string[] = ['select', 'position', 'name', 'weight', 'symbol'];
  dataSource = new MatTableDataSource<PeriodicElement>(ELEMENT_DATA);
  selection = new SelectionModel<PeriodicElement>(true, []);
  position = new SelectionModel<PeriodicElement>(true, []);
  changeMade: boolean = false;
  positionID: any;


  edit(element){
    this.positionID = element.position
    this.changeMade=true;
}
}
ngOnInit(){
    this.saved = [];
    for(var i: number = 0; i < 11; i++) {
      this.saved[i] = [];
      for(var j: number = 0; j< 11; j++) {
        this.saved[i][j] = true;
      }
    }
  }
edit(element, col){
    this.saved[element.position][col]=false;
}
[style.color]="saved[element.position][0] ? 'black': 'red'"
(change)="edit(element, 0)"