如何在组件的FormArray内部定义的HTML中访问控件-Angular2 [英] How to access control in HTML defined inside FormArray in component - Angular2
问题描述
我在我的应用程序中使用 ReactiveFroms
.当我添加 static
控件时,一切正常.我正在使用 controls
的 in建制
类显示 validation
错误.在静态控件中使用 Plunkr .
I am using ReactiveFroms
in my app. When I added static
controls then every thing is working fine.
I am showing validation
errors using inbuilt
classes of controls
.
Working Plunkr with static controls.
但是当我尝试添加 dynamic
控件时,我将无法访问控件以应用内置
验证.
But when I try to add dynamic
controls then I am not able to access controls in order to apply inbuilt
validation.
我在从 HTML模板
访问控件 reference
以便应用验证时遇到问题.我无法弄清楚如何访问控件.这是那个笨拙的人.
I am facing problem in accessing control reference
from HTML template
in order to apply validation.
I am not able to figure it out how can I access controls.
Here is the plunkr for that.
这是我添加动态控件的模板:
Here is my template for adding dynamic controls:
<form [formGroup]="valForm" class="form-validate form-horizontal" >
<div formArrayName="banks">
<div *ngFor="let bank of bankArray.controls;let i = index" [formGroupName]="i">
<legend>Bank Details</legend>
<fieldset>
<div class="form-group">
<label class="col-sm-2 control-label">Name of the Bank</label>
<div class="col-sm-6">
<input class="form-control " type="text" placeholder="Enter Bank Name" formControlName="bankName" [formControl]="valForm.controls['banks']" />
<span class="text-danger" *ngIf="valForm.controls['bankName'].hasError('required') && (valForm.controls['bankName'].dirty || valForm.controls['bankName'].touched)">This field is required</span>
</div>
</div>
</fieldset>
</div>
</div>
<button (click)="addNewBank()">Add New Bank</button>
</form>
我无法弄清楚如何访问 formControl
来添加验证.我尝试了各种方法,例如:
I am not able to figure it out how I can access formControl
in order to add validations. I tried various approach like:
valForm.controls['banks'][bankName]; //Not working
valForm.controls['banks'][0][bankName] //Not working
<input class="form-control " type="text" placeholder="Enter Bank Name" formControlName="bankName" [formControl]="valForm.get('bankName')" />
<span class="text-danger" *ngIf="valForm.controls['bankName'].hasError('required') && (valForm.get('bankName').dirty || valForm.get('bankName').touched)">This field is required</span> //Not working
这是 plunker .
推荐答案
我看到几个选项
valForm.get(['banks', i, 'bankName'])
valForm.get('banks.' + 'i' + '.bankName')
bankArray.get([i, 'bankName'])
bankArray.get(i + '.bankName')
bankArray.at(i).get('bankName')
这篇关于如何在组件的FormArray内部定义的HTML中访问控件-Angular2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!