Angular 如何验证角6中的阵列控制
我的HTML看起来像这样-Angular 如何验证角6中的阵列控制,angular,validation,angular7,angular4-forms,formarray,Angular,Validation,Angular7,Angular4 Forms,Formarray,我的HTML看起来像这样- <form name="add_stepform" [formGroup]="ActionTypeForm" novalidate> <cdk-virtual-scroll-viewport [itemSize]="100" class="stepViewPort"> <div [@fadeInOut] class="TestSteps example-item" *cdkVirtu
<form name="add_stepform" [formGroup]="ActionTypeForm" novalidate>
<cdk-virtual-scroll-viewport [itemSize]="100" class="stepViewPort">
<div [@fadeInOut] class="TestSteps example-item"
*cdkVirtualFor="let step of listOfSteps;TemplateCacheSize:0 let i=index">
<div formArrayName="steps">
<div [formGroupName]="i">
<div class="form-group">
<label class="font16">Step Description</label>
<input id="stepDescription" type="text"
formControlName="stepDescription" class="form-control"
placeholder="ex: about the application" >
<mat-error *ngIf="stepDescription.errors?.required">
Description Required<br>
</mat-error>
</div>
</div>
</div>
</div>
</cdk-virtual-scroll-viewport></form>
步骤说明
需要说明
.ts文件-
this.ActionTypeForm = new FormGroup({
steps: new FormArray([this.testSteps()])})
testSteps() {
return new FormGroup({
stepDescription: new FormControl('', [Validators.required)}
get stepDescription(){
return ((<FormArray>this.ActionTypeForm.get('steps')).controls)[0].get('stepDescription')
}
this.ActionTypeForm=新表单组({
步骤:新建FormArray([this.testSteps()]))
testSteps(){
返回新表单组({
步骤说明:新建FormControl(“”,[Validators.required)}
获取步骤描述(){
return((this.ActionTypeForm.get('steps')).controls)[0].get('stepDescription'))
}
但是它只验证第一步的描述..所以你知道如何动态使用索引值吗???如果可能的话,然后提供一个stackblitz!如果你只有一个错误(必需),你可以删除*ngIf并留下mat错误,就像
description required
一样,否则你可以在.html中使用,或者作为参数传递“i”函数step.get('stepDescription')。错误?.required
或ActionTypeForm.get('steps')。at(i).get('stepDescription')。错误?.required
hi@Eliseo感谢您的解决方案。。它对我来说很有效!!非常简单:)非常感谢!@Eliseo你知道如何验证输入不接受单引号或双引号作为输入吗???我支持使用角度模式验证-使用“regExp”-