2017-07-31 9 views
2

私はそれ個人のすべてのFormControlsを無効にする方法をFormControlFormGroup内のすべてのFormControlsを無効にする方法

を無効

this.FIRST_NAME.disable 

をすれば、私は、この反応性角フォーム構造

myForm: FormGroup; 
Personal: FormGroup; 
FIRST_NAME: FormControl; 
LAST_NAME: FormControl; 

ngOnInit(): void { 
    this.createFormControls(); 
     this.createForm(); 

    } 

createFormControls() { 

this.FIRST_NAME = new FormControl('',[Validators.required]); 
this.LAST_NAME = new FormControl('',[Validators.required]); 

} 

createForm(): void 
{ 
    this.myForm = this.fb.group({ 
         Personal:this.fb.group({ 
          FIRST_NAME:this.FIRST_NAME, 
          LAST_NAME:this.LAST_NAME, 
         }) 
       }) 
} 

を持っていますFormGroup

答えて

2

次使用、あなたは今、あなただけFormGroup、何もないとして、それを宣言した、this.Personalが何であるかを伝える必要があります。

ですから、フォームを作成た後、それをを行うことができます。

this.Personal = this.myForm.get('Personal') 

その後、あなただけでそれを無効にすることができます

this.Personal.disable(); 

DEMO:http://plnkr.co/edit/QAhY6A9950jqrgzvjVKu?p=preview

+0

内にネストされているため、デフォルトでフィールドグループを初期化する方法はありますか? –

+0

が無効または有効にされている –

+0

私はそれを見ているので、最初に無効にしたい場合は、フォームを作成した後でそれを行うことができます。 http://plnkr.co/edit/h5ijJUl6qXJsYECgR0a3?p=preview – Alex

0

フォーム全体を無効にすることもできます this.Personal.disable();

またはあなたがそれらをあなたがそのような制御を無効にすることができます1

for (var control in this.Personal.controls) { 
    this.Personal.controls[control].disable(); 
} 
+0

this.Personal.disable( );入れ子になったFormGroup btの作業はフォーム全体では機能しません。 –

1

ずつを有効/すべてのフォームのコントロールを列挙し、無効にすることができます。フォームビルダーは、

createForm(): void 
    { 
     this.myForm = this.fb.group({ 
          Personal:this.fb.group({ 
           FIRST_NAME:{value:this.FIRST_NAME,, disabled: true}, 
           LAST_NAME:this.LAST_NAME, 
          }) 
        }) 
    } 

のようになり、無効にするか有効にする必要があります。あなたがグループを無効にしたい場合の方法

this.myForm.get('Personal.FIRST_NAME').disable(); 
this.myForm.get('Personal.FIRST_NAME').enable(); 
+0

FIRST_NAMEがパーソナル –

関連する問題