2016-11-17 20 views
1

私はいくつかのコントロールを持つフォームを持っている、と私のhtmlで、私は「カテゴリ」コントロールの有効なプロパティを使用し、角度2の成分を持っており、それは文句:角度2フォームコントロール未定義

プロパティを読み取ることができませんhtmlコードのこの行の未定義

の '有効':[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:

<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が定義されていないと言っています。 addForm.controls.categoriesngOnInitに定義すると、どうすればいいですか?おそらく、私が目にするには遅すぎるということは明らかです。

EDITは:以下のように

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

+0

フォームビルダを移動してまたはもう一度お試しください。 – echonax

+0

@echonaxは残念ながら動作しませんでした – BeniaminoBaggins

答えて

0

変更フォームタグHTML::

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

ますようaddFormを宣言してきたように、待って、この内のhtmlが上であることを追加するのを忘れFormGroupFormGroupDirectiveを 'ngForm'以外のフォームに使用する必要があります