Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.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
Javascript 使用angular 2[formControl]验证已用表单的*Ng_Javascript_Html_Validation_Angular_Typescript - Fatal编程技术网

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']"