2017-11-15 22 views
1

このフォームでは、フォームのエラーを表示するために、formControlName = "last"のコントロールにアクセスする必要があります。formGroupNameによって直接コントロールにアクセスする方法

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

このコードは、定義されていないエラー「controls」(太字のフォーマット済みライン)を送出しました。コントロールはフォーム['controls']によってアクセス可能です。名前['controls']。last.invalidですが、フォームグループによってコントロールに直接アクセスできる方法はありますか?事前に

おかげで

答えて

0

この

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

こんにちはヴィーナ、 form.controls.name.controls.last.valid作品(また、問題に言及した)を試してみてください。 しかし、私はそれを介してコントロールにアクセスしたいのFormGroupName。 –

+0

深いネストされたFormGroupsがformGroupNamesで形成されている場合、それにアクセスすることは困難になります。私たちは "form.controls.group1.controls.group2.controls.group3.controls.controlName"にアクセスする必要があります。これは非常に時間がかかります。それが私がそのグループ名を通してそれにアクセスしたかった理由です。 @Veena応答ありがとうございました –

0

あなたは以下試す

<span *ngIf="form.get('last').invalid">invalid</span>

+0

が機能しませんでした。コントロールはグループ 'name'の内部にあります。 –

0

@sravanponugotiスニペットでし試してみてください。私たちは、角度にして、[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>