2016-06-11 12 views
0

私は登録フォームを検証し、無効データが入力されている場合は、エラーメッセージを追加するフォローコード、持っている:角2.内部ControlGroupを外部ControlGroupからどのくらい正確に取得できますか?

this.registerForm = _fb.group({ 
     // email: new Control(this.registerContact.email, 
     //   Validators.compose([Validators.required, Validators.minLength(4)])), 
     emails:_fb.group({ 
      email: new Control(this.registerContact.email, 
       Validators.compose([Validators.required, Validators.minLength(4)])), 
     }), 

     passwords:_fb.group({ 
          password: new Control(this.registerContact.password, 
       Validators.compose([Validators.required, Validators.minLength(8)])), 
          repeat_password: new Control(this.registerContact.repeat_password, 
       Validators.required)},{ 
          validator:checkRepeatPassword}) 
    }); 

を、私はパスワードを取得する必要がありからをrepeat_password this.registerForm。この方法

せinnerContol = this.registerForm.controls [フィールド]で

... 
onValueChanged(data: any) { 
    for (let fields in this.formError) { 
     // console.log('fields: '+fields); 
     for(let field in this.formError[fields]){ 

      // console.log('  field: '+field); 
     if (this.formError.hasOwnProperty(fields)) { 

      let innerContol = this.registerForm.controls[fields].controls[field]; 

      let hasError = innerContol.dirty &&!innerContol.valid; 
       console.log('hasError?:'+hasError) 
      this.formError[fields][field] = ''; 
      if (hasError) { 

       for (let key in innerContol.errors) { 
         if(field=='repeat_password'){ 
        // console.log('repat_error:'+key) 
       } 

        if (innerContol.errors.hasOwnProperty(key)) { 
         console.log(' >>>outer repeat_password error!'+innerContol.value);  

         this.formError[fields][field] += this._validationMessages[field][key] + ' '; 
         console.log(' >>>add follow errorMessage:'+this._validationMessages[field][key]); 
        } 
       } 
      } 
     } 
    } 
} 

だから、それが仕事だが、私は赤い下線があります は、今私は、次のコードを使用します。 controls [field];警告と

プロパティは、 '制御' タイプに存在しません 'AbstractControl'

たぶんパスワードrepeat_passwordを取得するための良い方法はあります

https://github.com/ProximaHaiz/Angular_2_book_library/blob/master/app_ts/registration/registration.component.ts

答えて

0

Plunker example

this.registerForm.controls.passwords.controls.password; 
:githubのへのリンクがあります

関連する問題