1

我在 mat-table 中遇到问题,我的输入字段在表格中无法正常工作。所有行都使用一个输入字段。意味着如果我在输入框中键入文本,所有行都显示该文本

我的代码:

<ng-container matColumnDef="Remarks">
    <mat-header-cell *matHeaderCellDef>scheduled hours</mat-header-cell>
    <mat-cell *matCellDef="let element">  
        <mat-form-field>
            <input matInput [(ngModel)]="Remarks" (input)="$event.target.value.length > 2 && Remarks($event.target.value)"  name="AppRemarks"  #AppRemarks="ngModel"  placeholder="Remarks"> &nbsp; &nbsp;
        </mat-form-field> 
    </mat-cell>
</ng-container>
4

3 回答 3

1

您好,这不是 mat 表的错,您用同一个变量制作了一个表,并且每一行对同一个变量都有两种方式绑定,这将导致每一行都具有相同的值。

为了实现您想要的,请查看 Angular Reactive formarrays。

这是一个很好的教程如何使用 formarrays https://netbasal.com/angular-reactive-forms-the-ultimate-guide-to-formarray-3adbe6b0b61a

于 2020-07-28T08:01:22.933 回答
0

我也遇到了这个!最终成为name扔东西的属性。 name用于唯一标识控件,因此当您将相同的名称应用于每个属性时,它们都共享相同的标识符/键并被视为一个输入。

这应该可以解决您的问题(为简洁起见,省略了一些代码):

<ng-container matColumnDef="Remarks">
    <mat-header-cell *matHeaderCellDef>scheduled hours</mat-header-cell>
    <mat-cell *matCellDef="let element; let i = index;">  
        <mat-form-field>
            <input matInput [(ngModel)]="Remarks" name="AppRemarks{{ i }}">
        </mat-form-field> 
    </mat-cell>
</ng-container>
于 2021-04-19T16:18:20.463 回答
0

应该是[(ngModel)]="AppRemarks"因为name= "AppRemarks"在您的输入字段中

于 2021-09-17T08:58:47.503 回答