2016-12-22 8 views
1

angular2に#variable = "ngForm"を使用します。 formControl入力でどのように使用できますか? Angularの各バージョンには非常に多くの変更があり、「feedbackForm.controls.personalData.controls.firstName」を使用する代わりに#variableを使用することはできません。これを行う方法が他にあるかどうかはわかりません。ありがとうございました。#variable(NgForm入力ディレクティブ)をモデル駆動型で使用するにはどうすればよいですか?

<form [formGroup]="feedbackForm" novalidate (ngSubmit)="onSubmit(this.feedbackForm)"> 
     <div formGroupName="personalData"> 
      <div class="form-group"> 
       <label for="firstName">First name</label> 
       <input formControlName="firstName" id="firstName" type="text" class="form-control" required /> 
       <div class="alert-info alert-danger" 
        *ngIf="feedbackForm.controls.personalData.controls.firstName.touched && feedbackForm.controls.personalData.controls.firstName.errors">FirstName is required</div> 

     </div> 
... 
... 
... 

********** **********コンストラクタ一般

constructor(@Inject(FormBuilder) fb: FormBuilder) { 


this.feedbackGroup = fb.group({ 
     comment: ['', Validators.required] 
    }); 

    this.feedbackForm = fb.group({ 
     personalData: fb.group({ 
      firstName: [``, Validators.required], 
      lastName: [``, Validators.compose([Validators.required, CustomerValidators.cannotContainSpace]), CustomerValidators.shouldBeUnique], 
      phoneNumber: [] 
     }), 
     feedback: this.feedbackGroup 
    }); 
} 
+0

あなたも 'personalData.get( 'firstNameの')でそれを行うことができインサイド

<form [formGroup]="feedbackForm" novalidate (ngSubmit)="onSubmit(this.feedbackForm)"> <div [formGroup]="personalData"> <div class="form-group"> <label for="firstName">First name</label> <input [formControl]="firstName" id="firstName" type="text" class="form-control" required /> <div class="alert-info alert-danger" *ngIf="firstName.touched && firstName.errors">FirstName is required</div> </div> 

touched' – ranakrunal9

+0

チェックhttps://toddmotto.com/angular-2-forms-template-driven – ranakrunal9

答えて

0

あなたはないミックスとは、モデルとテンプレート駆動型フォームと一致する必要があります。 私がお勧めしたいもの:。クラス

export class thatComponent { 
    private firstName:FormControl; 
    private personalData:FormGroup; 
    private feedbackForm:FormGroup; 
    constructor(){ 
     this.feedbackForm = .... // what ever you've done 

     this.personalData = this.feedbackForm.get(['personalData']) 
     this.firstName = this.personalData.get(['firstName']) 

    } 

} 
+0

更新されたコンストラクタ(トップポスト内)でどのように変更を行うことができますか? – amin89

+0

ありがとうございます;) – amin89

+0

正解: this.feedback PersonalDataへの属性にアクセスするためのフォーム(「personalData.firstName」) – amin89

関連する問題