谁能解释为什么有效或原始检查不会更新?输入名称会更改模型值(model.firstname),但是如果我在测试用例中将名称长度设置为1个字符,则当我希望它违反最小长度要求4时,它不会显示错误。
<label for="firstname">First Name</label>
<input type="text" class="form-control" id="firstname" required [(ngModel)]="user.firstname"
name="firstname" #namecontrol="ngModel">
<div [hidden]="namecontrol.valid || namecontrol.pristine" class="alert alert-danger">
Name is required
</div>
我的组件
@Input() user:GcUser;
editUserForm:FormGroup;
......
ngOnInit(): void {
this.editUserForm = new FormGroup({
'firstname': new FormControl(this.user.firstname, [
Validators.required,
Validators.minLength(4)
])
});
}
根据以下建议进行更改后,即可实施反应式表单
TypeError: Cannot read property 'valid' of undefined
答案 0 :(得分:1)
<罢工>
您应该更改export function output(functions: Function[], inputs: unknown[]) {
for (let func of functions) {
console.log(`=== ${func.name} ===`);
for (let input of inputs) {
console.log(`"${input}"\t-> ${func(input)}`);
}
console.log();
}
}
的{{3}}设置以对'change'进行更新:
console.log(`=== ${func.name} ===`);
这当然无济于事,因为默认值为'change'。您的问题是您将所谓的反应形式(FormGroup / FormControl)与模板驱动的形式(NgModel)结合使用。为了获得所需的结果,您必须将模板更新为此:
FormControl