Javascript 使用angular 2[formControl]验证已用表单的*Ng
我有一个角度形式,它使用了Javascript 使用angular 2[formControl]验证已用表单的*Ng,javascript,html,validation,angular,typescript,Javascript,Html,Validation,Angular,Typescript,我有一个角度形式,它使用了*ngFor来重复输入框。此外,我还必须动态验证由*ngFor生成的所有输入框 有一个名为list的JSON数组,其中包含问题。我必须为答案生成输入框,它们应该经过验证。验证信息也在列表中 这是列表的一个示例 [{id:1, mandatory:false, questionDescription:"Blue flags are in position and contain words “Stop, Tank Car Connected” or “Stop, Men
*ngFor
来重复输入框。此外,我还必须动态验证由*ngFor
生成的所有输入框
有一个名为list的JSON数组,其中包含问题。我必须为答案生成输入框,它们应该经过验证。验证信息也在列表中
这是列表的一个示例
[{id:1,
mandatory:false,
questionDescription:"Blue flags are in position and contain words “Stop, Tank Car Connected” or “Stop, Men at Work”",
questionType:1,
validation:{maximum:100,minimum:0}},
{id:2,
mandatory:true,
questionDescription:"Wheels are chocked and handbrake(s) set” or “Stop, Men at Work",
questionType:2,
validation:{maxLength:10,minLength:3}}]
我尝试验证生成的输入框,如本文所述。
(参见此处的验证表单)
因此,我必须为每个输入框提供验证信息,如下所示。
(此示例来自给定教程)
这是它的HTML
<div class="form-group">
<label>First Name:</label>
<input class="form-control" type="text"[formControl]="complexForm.controls['firstName']">
</div>
<div class="form-group" >
<label>Last Name</label>
<input class="form-control" type="text" [formControl]="complexForm.controls['lastName']">
</div>
这是我的HTML代码
<form [formGroup]="inspectionForm" (ngSubmit)="submitForm(inspectionForm.value)">
<div *ngFor="let question of section.questionList" [ngSwitch]="question.questionType">
<ion-row *ngSwitchCase="QuestionType.String">
<ion-col width-80>{{question.questionDescription}}</ion-col>
<ion-col width-20>
<ion-input id="{{question.id}}" type="text" class="inspection-bottom-border" [formControl]="inspectionForm.controls['{{question.id}}']"></ion-input>
</ion-col>
</ion-row>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary" [disabled]="!inspectionForm.valid">Submit</button>
</div>
</form>
然后我在StackOverflow中搜索答案,我发现有人曾经说过不要在一次()
但是如果我删除了[]
并定义如下
formControl="inspectionForm.controls['{{question.id}}']"
我得到一个错误如下
EXCEPTION: Error in ./InspectionPage class InspectionPage - inline template:36:91 caused by: Cannot create property 'validator' on string 'inspectionForm.controls['2']'
(此“2”是第一个类型2问题的question.id)
如果我定义如下,同样的错误也会发生
formControl="inspectionForm.controls['2']"
但问题是如果我用[formControl]
[formControl]="inspectionForm.controls['2']"
该应用程序工作正常……
但是我必须动态地给出问题.id
。我怎么能做到
是否有人能解决此错误。请提个建议
非常感谢。只需使用
[formControl]=“inspectionForm.controls[question.id]”
谢谢@Sasxa的回答您是否尝试过
[formControl]=“inspectionForm.controls[question.id]”
?非常感谢。。。。现在它起作用了。。。。你救了我。。。非常感谢:幸运的是,form.controls['']
不受AoT支持。最好使用[formControl]=“inspectionForm.get(question.id)”
EXCEPTION: Error in ./InspectionPage class InspectionPage - inline template:36:91 caused by: Cannot create property 'validator' on string 'inspectionForm.controls['2']'
formControl="inspectionForm.controls['2']"
[formControl]="inspectionForm.controls['2']"