Angular 角度2窗体控件未定义

Angular 角度2窗体控件未定义,angular,angular2-forms,Angular,Angular2 Forms,我有一个angular 2组件,它有一个带有一些控件的表单,在我的html中,我使用了“categories”控件的有效属性,它抱怨: 无法读取未定义的属性“valid” 在这行html代码上:[ngClass]=“{'no-error':addForm.controls.categories.valid | | 组件类别: export class AddFormComponent implements OnInit { private addForm: FormGroup; pri

我有一个angular 2组件,它有一个带有一些控件的表单,在我的html中,我使用了“categories”控件的有效属性,它抱怨:

无法读取未定义的属性“valid”

在这行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
没有定义。这怎么可能呢,当我在
ngOnInit
中定义
addForm.controls.categories
时?可能有一些明显的东西我太慢了,无法发现

编辑:等等,忘了添加上面的html在这里面:


如下更改表单标签HTML:

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


正如您声明的
addForm
FormGroup
一样,您必须使用表单而不是“ngForm”

更改表单标记HTML,如下所示:

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


正如您声明的
addForm
FormGroup
一样,您必须使用for form而不是'ngForm'

您需要导入FormControl

import { FormControl } from '@angular/forms';

您需要导入FormControl

import { FormControl } from '@angular/forms';

您能将表单生成器移动到构造函数并重试吗?@echonax不幸无法工作您能将表单生成器移动到构造函数并重试吗?@echonax不幸无法工作