在Angular2上的MatTable中的行的单元格之间共享数据

时间:2017-10-20 18:12:33

标签: angular typescript material-design

我正在使用很多Material Design表在Angular中开发一个应用程序。

现在,在其中一些表中,数据可以被编辑,所以我有几行,其中每一行都有一系列包含一些字段的列,最后一列包含一些允许我提交数据更改的按钮或者恢复到初始状态。

功能非常好,我可以毫无问题地编辑数据和所有内容,现在我希望通过添加数据验证并使用{{1}在输入下显示提示和错误来改善用户体验}和mat-hint

问题是我无法禁用"提交"按钮,以防其中一行的某个字段无效。

在应用程序的其他部分,没有表格,我所做的是:

mat-error

但现在我有

<form #form="ngForm">
    <mat-form-field>
        <input name="data" #inputData="ngModel" [(ngModel)]="model" />
        <mat-error *ngIf="inputData.errors">
            some error
        </mat-error>
    </mat-form-field>
    <button [disabled]="form.invalid" type="submit">Submit</button>
</form>

我怎样才能达到同样的效果?我知道简单地使用<mat-table> <ng-container cdkColumnDef="id"> <mat-header-cell *cdkHeaderCellDef> Id </mat-header-cell> <mat-cell *cdkCellDef="let row"> {{row.id}} </mat-cell> </ng-container> <ng-container cdkColumnDef="input"> <mat-header-cell *cdkHeaderCellDef> Input </mat-header-cell> <mat-cell *cdkCellDef="let row"> <input [(ngModel)]="row.data" name="data" #inputData="ngModel"/> </mat-cell> </ng-container> <ng-container cdkColumnDef="actions"> <mat-header-cell *cdkHeaderCellDef>Actions</mat-header-cell> <mat-cell *cdkCellDef="let row;"> <button (click)="submitData(row)"> Submit </button> </mat-cell> </ng-container> <mat-header-row *cdkHeaderRowDef="['id', 'input', 'actions']"></mat-header-row> <mat-row *cdkRowDef="let row; columns: ['id', 'input', 'actions'];"></mat-row> </mat-table> 并不起作用,因为它是模板变量,行,标题和单元格定义都在不同的模板中。我真的想避免在行中添加内容,因为那是我的模型变量,我想把事情分开。

我可以显示错误,我想要实现的主要功能是禁用提交按钮,以防某些字段在如上所示的表格中无效。

0 个答案:

没有答案