Угловое изменение цвета строки при нажатии кнопки предварительного просмотра

#javascript #html #angular #typescript

Вопрос:

В моем коде у меня есть таблица и кнопка для каждой строки, где пользователь может просмотреть элементы. Поскольку таблица содержит много элементов, при нажатии кнопки предварительного просмотра я хочу, чтобы цвет строки стал желтым. Прямо сейчас я не мог добиться успеха в этом так, как старался. Что я должен сделать, чтобы достичь того, чего я хочу?

введите описание изображения здесь

HTML:

 lt;button mat-icon-button class="sidebar-toggle" (click)="preview(row)" [ngClass]="{'yellow' : EditIndex == i}"gt; lt;mat-icongt;pageviewlt;/mat-icongt; lt;/buttongt;  

тс:

 preview(labPeriod: ILabPeriod) {  this.labPeriodPreview = undefined;  this._labService  .getLabAnalysisTestResultsList(labPeriod.LabPeriodId)  .subscribe((response: ILabConditionResult[]) =gt; {  this.labAnalysis.LabConditionResults = response;  labPeriod.LabAnalysis = this.labAnalysis;  this.labPeriodPreview = labPeriod;  this._fuseSidebarService  .getSidebar("analysis-detail-period-preview")  .open();  });  }  

Ответ №1:

Попробуйте добавить дополнительное свойство к объекту строки с именем isYellow.Если имеет неопределенное или ложное значение, желтый класс не будет отображаться. HTML:

 lt;button mat-icon-button class="sidebar-toggle" (click)="preview(row)" [ngClass]="{'yellow' : row.isYellow}"gt; lt;mat-icongt;pageviewlt;/mat-icongt; lt;/buttongt;  

Тс:

 preview(labPeriod: ILabPeriod) { //new //todo loop through all rows and set isYellow to false labPeriod.isYellow = true; //new  this.labPeriodPreview = undefined;  this._labService  .getLabAnalysisTestResultsList(labPeriod.LabPeriodId)  .subscribe((response: ILabConditionResult[]) =gt; {  this.labAnalysis.LabConditionResults = response;  labPeriod.LabAnalysis = this.labAnalysis;  this.labPeriodPreview = labPeriod;  this._fuseSidebarService  .getSidebar("analysis-detail-period-preview")  .open();  });  }  

Комментарии:

1. Ладно, спасибо, это вроде как сработало. Потому что теперь желтеет только кнопка, а не строка. :/

2. Вы можете изменить позицию своего класса на тег строки.

3. Ладно, теперь это работает. У меня есть еще один вопрос. Что я должен сделать, чтобы удалить желтый цвет из строки, когда я нажимаю на другую строку?

4. цикл foreach, чтобы изменить все значение isYellow на false, прежде чем присваивать значение true для выбранного.