Angular2 forms 如何通过控件的formGroupName直接访问控件

Angular2 forms 如何通过控件的formGroupName直接访问控件,angular2-forms,angular-reactive-forms,Angular2 Forms,Angular Reactive Forms,在此表单中,我必须访问formControlName=“last”的控件以显示其错误 无效 提交 此代码引发了一个未定义的错误“controls”(粗体格式行)。 控件可以通过窗体['controls'].name['controls'].last.invalid进行访问,但是否有任何方法可以通过其formGroupName直接访问控件 提前感谢试试这个 <div *ngIf="!form.controls.name.controls.last.valid">

在此表单中,我必须访问formControlName=“last”的控件以显示其错误





无效



提交

此代码引发了一个未定义的错误“controls”(粗体格式行)。 控件可以通过窗体['controls'].name['controls'].last.invalid进行访问,但是否有任何方法可以通过其formGroupName直接访问控件

提前感谢

试试这个

<div *ngIf="!form.controls.name.controls.last.valid">
       Invalid last name !!
    </div>

姓氏无效!!
试试这个

<div *ngIf="!form.controls.name.controls.last.valid">
       Invalid last name !!
    </div>

姓氏无效!!

您能试试下面的代码片段吗


无效

您能试试下面的代码片段吗


无效

@sravanpanugoti:我们不能将[formGroup]与一起使用。 试试这个代码

<form [formGroup]="form"> 
<div formGroupName="name"> 
<input formControlName="first" placeholder="First">
<input formControlName="last" placeholder="Last"> 
<span *ngIf="form.controls['name'].controls.last.valid">invalid</s‌​pan> 
</div> 
<input formControlName="email" placeholder="Email"> 
<button type="submit">Submit</button> 
</form>

无效的
提交

@sravanpanugoti:我们不能将[formGroup]用于角度。 试试这个代码

<form [formGroup]="form"> 
<div formGroupName="name"> 
<input formControlName="first" placeholder="First">
<input formControlName="last" placeholder="Last"> 
<span *ngIf="form.controls['name'].controls.last.valid">invalid</s‌​pan> 
</div> 
<input formControlName="email" placeholder="Email"> 
<button type="submit">Submit</button> 
</form>

无效的
提交

Hi Veena,form.controls.name.controls.last.valid有效(也有疑问)。但是我想通过formGroupName访问控件。如果有许多由formGroupName组成的深层嵌套FormGroups,那么访问它就变得很困难。我们需要通过“form.controls.group1.controls.group2.controls.group3.controls.controlName”来访问它,它非常长。这就是我想通过组名本身访问它的原因@Veena感谢您的回复Hi Veena,form.controls.name.controls.last.valid works(也在问题中提到)。但是我想通过formGroupName访问控件。如果有许多由formGroupName组成的深层嵌套FormGroups,那么访问它就变得很困难。我们需要通过“form.controls.group1.controls.group2.controls.group3.controls.controlName”来访问它,它非常长。这就是我想通过组名本身访问它的原因@维娜:谢谢你的回复