2016-11-17 68 views
1

我有了一些控件的窗體,並在我的HTML我使用「類別」控制的有效屬性的角度2成分和它抱怨:角2表單控件未定義

無法讀取屬性[ngClass]="{'no-error': addForm.controls.categories.valid ||

組件類:

export class AddFormComponent implements OnInit { 

    private addForm: FormGroup; 
    private mealSelected: boolean; 

    constructor(
     private formBuilder: FormBuilder, 
     el: ElementRef) { } 

    ngOnInit() { 
     this.addForm = this.formBuilder.group({ 
      categories: [null, Validators.required], 
      mealTypes: [[], this.mealTypesValidator()], 
      brand: [null, Validators.required], 
      name: [null, Validators.required], 
      description: [null, Validators.required], 
     image: null, 
      webUrl: null, 
     }); 
    }... 
在這條線的HTML代碼的未定義

'有效'

組件的HTML:

<small 
     [ngClass]="{'no-error': addForm.controls.categories.valid || 
     (addForm.controls.categories.pristine && !submitted)}" 
     class="text-danger">Please select at least 1 category. 
    </small> 

所以它是說,addForm.controls.categories沒有定義。當我在ngOnInit中定義addForm.controls.categories時,這怎麼可能?可能有一些顯而易見的事情,我太慢無法發現。

編輯:等待,忘了添加在上面的HTML是這裏面:

<form class="text-uppercase" (ngSubmit)="onSubmit()" #addForm="ngForm">

+0

您可以移動表單構建器來構造或再試一次? – echonax

+0

@echonax不幸的工作 – BeniaminoBaggins

回答

0

更改你的表單標籤的HTML如下:

<form class="text-uppercase" (ngSubmit)="onSubmit()" [formGroup]="addForm"> 

正如你所宣佈addFormFormGroup您必須使用FormGroupDirective表單不是'ngForm'