Я использую угловые материалы mat-table
для отображения данных. Что ж, когда вы нажимаете на одну ячейку, отображается поле ввода, а тег span скрывается.
Но в моем случае каждая ячейка в этой строке отображает поле ввода, как вы можете видеть на скриншоте:
Мое ngIf
-утверждение выглядит следующим образом:
Показывает span-тег:! Editable || (selectedRowIdx! == idx)
Показывает тег ввода: редактируемый && (selectedRowIdx == idx)
<ng-container matColumnDef="TYPE">
<mat-header-cell *matHeaderCellDef> TYPE </mat-header-cell>
<mat-cell *matCellDef="let elem; let idx = index" (click)="testFocusIn(elem.TYPE)">
<span *ngIf="!editable || (selectedRowIdx !== idx)">{{elem.TYPE}}</span>
<mat-form-field *ngIf="editable && (selectedRowIdx == idx)">
<input matInput [(ngModel)]="elem.TYPE" [appAutoFocus]="(focus === elem.TYPE)">
</mat-form-field>
</mat-cell>
</ng-container>
<ng-container matColumnDef="NAME">
<mat-header-cell *matHeaderCellDef> NAME </mat-header-cell>
<mat-cell *matCellDef="let elem; let idx = index" (click)="testFocusIn(elem.NAME)">
<span *ngIf="!editable || (selectedRowIdx !== idx)">{{elem.NAME}}</span>
<mat-form-field *ngIf="editable && (selectedRowIdx == idx)">
<input matInput [(ngModel)]="elem.NAME" [appAutoFocus]="(focus === elem.NAME)">
</mat-form-field>
</mat-cell>
</ng-container>
Что еще я мог проверить? Может быть, определить ID-тег?