Angular 2 表单控件未定义
Angular 2 form control undefined
我有一个 angular 2 组件,它有一个带有一些控件的表单,在我的 html 中,我使用 "categories" 控件的有效 属性 并且它抱怨:
Cannot read property 'valid' of undefined
在这行 html 代码中:[ngClass]="{'no-error': addForm.controls.categories.valid ||
组件class:
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在里面:
<form class="text-uppercase" (ngSubmit)="onSubmit()" #addForm="ngForm">
更改您的表单标签 HTML 如下:
<form class="text-uppercase" (ngSubmit)="onSubmit()" [formGroup]="addForm">
由于您已将 addForm
声明为 FormGroup
,因此您必须使用 FormGroupDirective 而非 'ngForm'
您需要导入 FormControl
import { FormControl } from '@angular/forms';
我有一个 angular 2 组件,它有一个带有一些控件的表单,在我的 html 中,我使用 "categories" 控件的有效 属性 并且它抱怨:
Cannot read property 'valid' of undefined
在这行 html 代码中:[ngClass]="{'no-error': addForm.controls.categories.valid ||
组件class:
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在里面:
<form class="text-uppercase" (ngSubmit)="onSubmit()" #addForm="ngForm">
更改您的表单标签 HTML 如下:
<form class="text-uppercase" (ngSubmit)="onSubmit()" [formGroup]="addForm">
由于您已将 addForm
声明为 FormGroup
,因此您必须使用 FormGroupDirective 而非 'ngForm'
您需要导入 FormControl
import { FormControl } from '@angular/forms';