Angular 角度2窗体控件未定义
我有一个angular 2组件,它有一个带有一些控件的表单,在我的html中,我使用了“categories”控件的有效属性,它抱怨: 无法读取未定义的属性“valid” 在这行html代码上: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
[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不幸无法工作