我有一个问题,我需要关注表中单击列的字段。我总是必须在该字段上单击两次以修改输入字段中的内容。
HTML:
<table mat-table [dataSource]="dataSource">
<ng-container matColumnDef="ID">
<th mat-header-cell *matHeaderCellDef> ID </th>
<td mat-cell *matCellDef="let elem" (click)="editCell(elem.ID)" (keydown.enter)="editCell($event.keyCode)">
<span *ngIf="!editable"> {{elem.ID}} </span>
<mat-form-field *ngIf="editable">
<input matInput [(ngModel)]="elem.ID">
</mat-form-field>
</td>
</ng-container>
...
</table>
组件:
editCell(item: any): void {
console.log('item: ', item);
if(!this.editable) {
this.editable = !this.editable;
} else if(item === 13) {
this.editable = !this.editable;
}
}
我在其他线程中读到了有关template reference variable
和方法.focus()
的一些信息,但这对我不起作用。
有人可以帮助我吗?
答案 0 :(得分:1)
尝试一下
(focus)="editCell('focusin')" (focusout)="editCell('focus out')"