Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 数据表编辑无法使用二维格式进行验证_Angular_Datatable_Primeng_Primeng Datatable - Fatal编程技术网

Angular 数据表编辑无法使用二维格式进行验证

Angular 数据表编辑无法使用二维格式进行验证,angular,datatable,primeng,primeng-datatable,Angular,Datatable,Primeng,Primeng Datatable,我面临一个关于Datatable编辑器的问题 我的表是素数的数据表,该表可以编辑该行的任意单元格,需要全部单元格: 以下是Datatable的要求: 可以编辑任何单元格 验证任何单元格(必需) 当我完成2个需求时,当输入为空时,输入会引发一个bug Error: If ngModel is used within a form tag, either the name attribute must be set or the form control must be defined as '

我面临一个关于Datatable编辑器的问题

我的表是素数的数据表,该表可以编辑该行的任意单元格,需要全部单元格:

以下是Datatable的要求:

可以编辑任何单元格 验证任何单元格(必需) 当我完成2个需求时,当输入为空时,输入会引发一个bug

Error: If ngModel is used within a form tag, either the name attribute must be set or the form
  control must be defined as 'standalone' in ngModelOptions.

  Example 1: <input [(ngModel)]="person.firstName" name="first">
这将使输入是唯一的,我如何才能做到这一点,或有人建议我一个其他的解决方案

这是普朗克

我认为问题在于,当输入值相同时,名称为空且重复

事实上,你是对的。您所遇到的错误意味着您必须具有
名称
属性,并且此属性永远不应为空。但是当删除单元格值时,
数据[col.field]
变为空,因此
名称
属性变为空

因此,要解决您的问题,您不应该依赖此值。因此,您可以指定行索引和列索引的串联。类似于rowIndex\u columnIndex:


其中i是行的索引,j是列的索引


请参阅工作

很高兴能帮助您
[name]="`{col.field}` + '_' + `value of first row` + '_' + data[col.field]"
<form (ngSubmit)="onSubmit()" #form="ngForm">
<p-dataTable [value]="data" [editable]="true">
  <p-column *ngFor="let col of cols,let j=index" [field]="col.field" [editable]="true" [header]="col.header">
    <ng-template let-col let-data="rowData" pTemplate="editor" let-i="rowIndex">
      <input [(ngModel)]="data[col.field]" pInputText required="true" [name]="i+'_'+j"/>
    </ng-template>
  </p-column>
</p-dataTable>