在Angular 8中,表单的“valid”属性已经被删除,取而代之的是“valid”方法。以下是解决此问题的代码示例:
import { Component } from '@angular/core';
import { FormGroup, FormControl } from '@angular/forms';
@Component({
selector: 'app-my-form',
template: `
`
})
export class MyFormComponent {
myForm: FormGroup;
constructor() {
this.myForm = new FormGroup({
myInput: new FormControl('')
});
}
checkValidity() {
if (this.myForm.valid) {
console.log('Form is valid');
} else {
console.log('Form is invalid');
}
}
}
在上面的代码中,首先导入了FormGroup和FormControl。然后,在组件类中创建了一个名为“myForm”的表单组,其中包含一个名为“myInput”的表单控件。在构造函数中,我们使用FormControl类实例化了“myInput”控件。最后,我们在checkValidity方法中检查了表单的有效性。
请注意,您需要在模块中导入FormsModule或ReactiveFormsModule,以便使用表单相关的指令和服务。例如,在app.module.ts中导入ReactiveFormsModule:
import { NgModule } from '@angular/core';
import { ReactiveFormsModule } from '@angular/forms';
@NgModule({
imports: [
ReactiveFormsModule
],
declarations: [
// ...
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
通过这种方式,您应该能够解决“Angular 8无法读取表单的“valid”属性未定义”的问题。